Я познакомился с более подробными вопросами. Итак, я изменил Вопрос. Спасибо людям, которые ранее задавали вопрос об ответе.В Delphi я отправляю AnsiString Data в C++ DLL Function, но входное значение было потеряно. Почему это случилось?
Теперь, это подробный вопрос. В Дельфах, я отправляю данные типа AnsiString в C++ функции в DLL
В Delphi07
TFunctionA = function (aHandle: FunctionAHANDLE ; input: AnsiString): AnsiString; cdecl;
....
FunctionA('Test string value');
В C++ DLL
char * FunctionA(char *input){
....
return pReturn;
};
В ситуации, я подтвердил данные (полукокс * ввод) с использованием Visual Studio 15 Debug, данные были потеряны (AnsiString)
Но в Delphi тип возвращаемого свойства TFunctionA AnsiString для AnsiChar, , а затем передаются данные (ввод char *) ("Test string value").
TFunctionA = function (aHandle: FunctionAHANDLE ; input: AnsiString): AnsiChar; cdecl;
Я не знаю этой ситуации, потому что я никогда не работал с Delphi.
В коде есть ошибка. Не особенно полезно, но лучший, кто может, возможно, сделать для вас без [mcve] или хрустального шара. – user4581301
Что такое 'CString'? Класс C++, содержащий строку? Если это так, Delphi не сможет его использовать. Что это за «другая функция» и что она делает? Как @ user4581301 говорит, покажите [mcve]. Неясно, что происходит из вашего довольно смутного описания. –
Дефект в вашем коде. Либо отлаживайте его самостоятельно, либо покажите MCVE. –