extern "C" int __stdcall __export test ( int i, int j, char *mess )
{
MessageBox ( NULL, mess, "dll", NULL );
return i + j;
}
Написание dll совместимых с Delphi
Код:
Из Borland c++ вызывается без проблем:
Код:
int ( __stdcall *test ) ( int i, int j, char *mess );
HINSTANCE dllInst = LoadLibrary ("test.dll");
if ( dllInst == 0 ) {
MessageBox ( NULL, "Dll load error", "error", NULL);
return;
}
test = ( int ( __stdcall* ) ( int i, int j, char *mess ))
GetProcAddress ( dllInst, "test" );
if ( test == NULL ) {
MessageBox ( NULL, "test not found", "Error", NULL );
return;
}
int res = test ( 2, 3, "test mess" );
FreeLibrary ( dllInst );
HINSTANCE dllInst = LoadLibrary ("test.dll");
if ( dllInst == 0 ) {
MessageBox ( NULL, "Dll load error", "error", NULL);
return;
}
test = ( int ( __stdcall* ) ( int i, int j, char *mess ))
GetProcAddress ( dllInst, "test" );
if ( test == NULL ) {
MessageBox ( NULL, "test not found", "Error", NULL );
return;
}
int res = test ( 2, 3, "test mess" );
FreeLibrary ( dllInst );
А при попытке вызвать из Delphi она вызывается, но видно что вместо значений которые я ей подаю, туда попадает всякий мусор! Кто нибудь знает каким образом можно вызвать эту функцию корректно из Delphi? :confused: