У меня есть статическая библиотека.В этой библиотеке определена следующая функция
int WriteData(LPTSTR s)
Пример вызова функции:
LPTSTR s = (LPTSTR) L"Test Data";
int n = WriteData(s);
WriteData возвращает 0 при успехе и -1 при ошибке.
Iпишу динамическую DLL для экспорта этой функции.
int TestFun(LPTSTR lpData)
{
return WriteData(lpData);
}
Результат теста приложения C ++
LPTSTR s = (LPTSTR) L"Test Data";
TestFun(s); //OK return 0
LPTSTR s = (LPTSTR) "Test Data";
TestFun(s); //Fail return -1
Мне нужно вызвать его из приложения ac #.Я предполагаю, что моя подпись DLL-импорта была бы:
[DllImport("Test.dll")]
private static extern int TestFun(String s);
Мой вопрос очень прост Как я могу позвонить из .Net?Как видите, у меня есть контроль над
TestFun(LPTSTR lpData)
, но нет контроля над
WriteData(LPTSTR s)
Спасибо всем за их вклад.Пока я застрял на кастинге.Я думаю, что моя проблема будет решена, когда я смогу принять ввод от пользователя и написать 2 строки для приведения вместо следующей строки.
LPTSTR s = (LPTSTR) L"Test Data"); //<= How can ii take input from user and
TestFun(s); //OK return 0