Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Управляемый С++ и схатие звука. Добавлено: 04.03.06 12:15  

Автор вопроса:  vito | Web-сайт: softvito.narod2.ru
Все сил моих больше нет:))

Сделал утилитку, точнее почти, для сжатия звуковых файлов (кодек со степенью сжатия wav файлов больше 2 - примерно 2,5).
То есть как архиватор, он не искажает звук, а просто сжимает звук а потом восстанавливает.

Оболочку решил написать на .НЕТ.:(( Сам кодек - классический С. (Компилятор vc позволяет смешивать не упрвляемый(классический ) код и управляемый в одном модуле, без всяких DLL.

Все пршло ОК. Но кто нить - может подсказаать.... нет слов.

char **name; // у меня есть двумерный массив.
 /* --------  распределение памяти -------- */

         name=(char **)calloc(3,sizeof(char *));

for (int i=0; i<3; i++)

             name[i]=(char *)calloc(128,sizeof(char));

// Все в одном модуле, круто!

// а вот уже библиотечка .НЕТ

Path= openFileDialog1->FileName;// получаем полный путь
 FileNa = Path::GetFileName(Path);// получаем имя файла
e_Xep= Path::GetExtension (Path);// получаем расширение. Круто, млин!

name[2]="c_atmos_1.wav";// проверяем свой массив
// а вот теперь не круто.

//Имя файла в классе Strind
// а мне его нужно запихнуть в name[2].
 FileNa=name[2] ;//прекрасно работает
// а вот наобоорот никак
name[2] = ????


Сразу скажу перепробовал memcopy, strcpy и т.д. и т.п. Справка дымиться:)))

Доделаю раздам всем кто захочет, и кому и если нужно. Вещь полезная - обычный архиватор звук не жмет. А архивах звук часто очень много весит.
Мне эта утилитка нужна для сжатия звука в играх, и после закачки разжатия. Впрочем никто не мешает сжать звук а потом добавить в архив. 7zip уделаем:))

Кстати идея неплохая, учитывая, что исходники 7 ципа открыты.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 05.03.06 02:49
Вот млин, как это делается.

IntPtr p_Tr=Marshal::StringToHGlobalAnsi(FileNa);

name[2]=(char*)(p_Tr.ToPointer() );


В общем, кому нужна утилитка напишите, выложу.

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 11.03.06 20:16
А в нормальном, не искореженном С++ это делается так: s.c_str();

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам