Я видел некоторые темы по моей проблеме, но они не были так ясны, чтобы помочь мне.
Моя проблема: у меня есть приложение Delphi 7, которое вызывает внешнюю DLL из третьей части (которая не имеет доступа к источнику). Я пытаюсь преобразовать код Delphi в C # (.NET 2.0).
Вот код delphi для вызова dll:
function C500pchar(Comando : pchar):Integer; stdcall; external 'c50032.dll' name 'C500';
Вот мой код C # для вызова той же DLL:
[DllImport("C50032.DLL", CallingConvention = CallingConvention.StdCall, EntryPoint = "C500")]
static extern int C500pchar(StringBuilder Comando);
Этот код C # работает нормально, когда я запускаю его из Visual Studio 2005, но когда я пытаюсь запустить exe-файл, он падает, когда приложение вызывает метод C500pchar. Я попытался скопировать все файлы из папок Release и Debug и даже запустить exe из папок, но он работает только при запуске из VS.
Я что-то не так делаю?
РЕДАКТИРОВАТЬ: я работаю над Windows 7 и сталкиваюсь с этой проблемой. Но я пробовал работать на Windows XP SP3 и работал нормально.