У меня есть DLL-, который имеет функциюэкспорта DLL проблемы с PAnsiChar в Delphi XE7 с использованием STDCALL конвенции
Decrypt(aText, aKey: PAnsiChar): PAnsiChar; stdcall
и эта функция была экспортирована. в
exports
Decrypt;
И если я вызываю от клиента ниже в пути:
lH := LoadLibrary('EncDec.dll');
FEncDyc := GetProcAddress(lH , PChar('Decrypt'));
lResult := FEncDyc(PAnsiChar(AnsiString(EditPwd.Text)),
PAnsiChar(AnsiString(EditKey.Text)));
где FEncDyc
является указателем на FUNC типа
TDecrypt = function (aText: PAnsiChar; aKey: PAnsiChar): PAnsiChar;
Я всегда получаю значение нежелательного для параметров aText и aKey; где я иду не так? если изменить определение DLL для
Decrypt(aText, aKey: PAnsiChar): PAnsiChar; export;
Я получаю значение в DLL, без нежелательной characters- работает отлично!
Что не так в коде для stdcall и чем оно отличается, если вместо этого я использую ключ экспорта.
Также, пожалуйста, предложите: Каков правильный путь прохождения PAnsiChar и как его следует преобразовать в AnsiString в моей dll.
Если мне нужно передать значение типа PansiChar - это правильный путь? –
Ваша встреча в порядке. Преобразование в AnsiString, а затем отбрасывание в PAnsiChar, все в порядке. –