Delphi, Dll, wchar_t*

 
0
 
C++
ava
Vasya | 19.03.2013, 10:07
Добрый день!
Вопрос такой:

есть dll, написанная на дельфи и выглядит она так:


function Msg(const Value: PWideChar): Integer; stdcall;
begin
MessageBox(0, Value, '', 0);
Result := 0;
end;


и есть такой код в Qt

typedef int (*Msg)(const wchar_t*);

QLibrary lib("path_to_lib");
Msg msg = (*Msg)(lib.resolve("Msg");

for (int i = 0; i < 10; i++)
{
  wchar_t *str = L"The string\0";
  msg(str);
}


Так вот, где-то при i == 3 вылазит sigmentation fault. Что тут происходит?
Comments (1)
ava
borisbn | 19.03.2013, 18:05 #
Лучше тип вызова добавить и в Си-шный код:
typedef int (__stdcall *Msg)(const wchar_t*);

ну, или
typedef int (__cdecl *Msg)(const wchar_t*);

раз уже поменял в DLL.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Vasya ava  borisbn
advanced
Submit