Форум программистов, компьютерный форум CyberForum.ru

Функция возвращающая char* путь к файлу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему в списке инициализации конструктора дочернего класса нельзя вызывать конструктор родительского через его пространство имён? http://www.cyberforum.ru/cpp-beginners/thread1092074.html
Есть класс D и от него порождён класс Wd Тут вот например всё работает корректно (использую обращение ч/з пространство имён класса "D::" void Wd::changeParam(float dNewWeight, float dNewHight) { D::chngParam(dNewWeight, dNewHight); } Но в конструкторе так не получается:
C++ Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая Массив должен передаваться в функцию как параметр. Ранее я уже делал практически такое задание, только просто вводил массив и искал максимальную строчку. Подскажите как сделать массив что передавался в функцию как параметр. Заранее благодарен за помощь! # include <stdio.h> # include <conio.h> # define N 3 #include <iomanip> int main ( ) http://www.cyberforum.ru/cpp-beginners/thread1092045.html
C++ нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ )
Привет всем))) Помогите пожалуйста! Разработать программу для нахождения всех совершенных чисел среди элементов целочисленного массива.Массив заполнить с помощью генератора случайных чисел.С++
C++ Подсчитать сумму чисел кратных 3 в интервале от 0 до введенного.
Программа просит ввести любое число от 0 до 99, после чего подсчитывает сумму чисел кратных 3 в интервале от 0 до введенного.
C++ Программа с использование оператора Switch http://www.cyberforum.ru/cpp-beginners/thread1092038.html
Программа вводит два числа в первой строке и один из знаков +, -, *, / - во второй и выводит на экран результат соответствующего арифметического действия.
C++ программа с использованием оператора If Программа просит ввести три числа. Найти модуль их разности. Выбрать и напечатать наименьшую из них. Ниже написать «Работу выполнил» и указать фамилию. подробнее

Показать сообщение отдельно
SkyLu
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 24
08.02.2014, 15:46     Функция возвращающая char* путь к файлу
Такое дело:
Цитата Сообщение от SkyLu Посмотреть сообщение
есть приложение, есть DLL, написанная мною, которая проигрывает определённый звук по "команде" из приложения.
В моей DLL есть функция которая читает WAV файл.
Вот она:

LoadWaveFile("\\sound01.wav", &m_secondaryBuffer0);

WAV файл находиться в C:\
Вопрос: как или что написать что бы функция открывала файл находящийся в папке с приложением, при этом не указывая точного пути к файлу(так как у разных пользователей это приложение может быть установлено в разных директориях)?
Мне любезно предоставили следующий ответ:
Цитата Сообщение от Убежденный Посмотреть сообщение
GetModuleFileName - получаете полный путь к запущенному exe.
Дальше отрезаете от этого пути все, что идет за последним слэшем.
C++
1
2
3
4
5
6
7
8
9
using namespace std;
 
wstring Path = SomePath;
wstring::size_type const iLastSlash = Path.find_last_of(L"\\/");
 
if (wstring::npos != iLastSlash)
{
    Path = Path.substr(iLastSlash);
}
После перевода в мультик, код выглядит так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
char* retunABC()
{
    char buffer[MAX_PATH];
    string str;
 
    GetModuleFileName(NULL, buffer, MAX_PATH); // Узнаю путь к дериктории экзешника
 
    str = buffer; // Путь в стринг для последующей обработки
 
    string::size_type const lastSlash = str.find_last_of("\\/");
 
    if(string::npos != lastSlash)
    {
        str = str.substr(0,lastSlash); // Отнимаю псоледний слэшь с именем экзешника
    }
 
    const char *cstr = str.c_str(); // Явная хрень, но пытаюсь из стринга вернуть в char*
 
    return *cstr;
}
Проблема в том что функция bool LoadWaveFile(char* filename, IDirectSoundBuffer8** secondaryBuffer); принимает только char* который функцией retunABC(); я бы хотел вернуть, но увы... ни как ( хотелось бы что бы было что-то в роде LoadWaveFile(retunABC(), &m_secondaryBuffer0);
Как вернуть путь к файлу функцией через char* ?

И ещё такой момент, если раньше просто вбивал путь к файлу, использую двойной слешь, то, по идее, retunABC(); должна возвращать обработанную строку с произведённой заменой одинарного слеша на двойной, так ли это?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru