Я стараюсь быть более ясным на этот раз.
У меня есть основная программа для тестирования, которая вызывает Sinacor.DLL, которая для его включения вызывает PasswordManager.dll 3-й части DLL без кода (это система IDM);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Sinacor.DLL
...code ....
LPSTR *GetSenha (int FAR nicas)
.... code.....
char * Mypwd = NULL; // for return porpouse
Mypwd = call dynamically PasswordManager.dll // works fine
return Mypwd; } // return the encrypted password, in test case return "sinacor01"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Sinacor..h
extern "C" { LPSTR FAR *GetSenha(int); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
the Sinacor.dll is also loaded dynamically too in the main program for testing:
the main code:
.....some code ..............
typedef LPSTR (CALLBACK *ULPRET)(int);
LPSTR Mypwd = " ";
hLib = LoadLibrary ( "C:\\Ricardo\\Sinacor\\Sinacor.dll");
lpfnDLLProc = (ULPRET) GetProcAddress (hLib,"GetSenha");
Mypwd = (*lpfnDLLProc)(0); //Got runtime error in this statement
Теперь я являюсь ошибкой соглашения о параметрах, поэтому я выполнил (main и Sinacor.dll) как программы на C с соглашениями на C. Стек показывает все модули как модуль C с соглашениями C Должен работать, но не работает.
Пожалуйста, совет.
обе программы компилировались с _cstl (как CALLBACK).