![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 22.02.2010
Сообщений: 1
|
![]()
Доброго всем времени суток!
При передаче указателя на блок памяти из кода на Си++ в длл-функцию, написанную на дульфи, обнаруживаю в этом блоке памяти совсем другие данные. Есть библиотека DLL, написанная на delphi. В ней функция вида: function sendData(<тут разные параметры>; data: Pointer): BYTE; stdcall; begin with TFileStream.Create('dump.dat',fmOpe nWrite) do try write(data,wSize); finally free(); end; end; ее объявление в Си: typedef BYTE (WINAPI *SendData)(BYTE, WORD, BYTE, void*); и код в си: void* data; data = malloc(size); //дальше в память, куда указывает data записываются данные memcpy(data,&val,sz); //и собственно вызов функции DLL sendData(catId,size,objCount,data); Проблема в следующем: то что я записано в data в Си и то что я получаю в DLL-фнкции - совершенно разные данные. Ошибки доступа к памяти при этом не возникает. В Си у меня опыта мало, может что не так делаю? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача указателя на массив в функцию | loser | Общие вопросы C/C++ | 2 | 19.02.2010 19:41 |
Передача StringGrid в DLL | Adamrus | Общие вопросы Delphi | 7 | 30.11.2009 21:46 |
передача фрейма из dll | BESS | Компоненты Delphi | 1 | 20.04.2009 18:54 |
передача указателя в функцию | arturka | Помощь студентам | 3 | 06.07.2008 00:25 |
Передача данных из VC++ DLL в Delphi App | Kosoglaz | Общие вопросы C/C++ | 2 | 05.02.2008 10:53 |