我希望你能帮助我翻译一些关于IT技术的内容。以下是需要翻译的内容:
我看到了一些关于我的问题的主题,但它们并没有很清楚地帮助我。
我的问题是:我有一个调用外部dll的Delphi 7应用程序,这个dll来自第三方(我无法访问源代码)。我正在尝试将Delphi代码转换为C#(.NET 2.0)。
以下是调用dll的Delphi代码:
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文件时,应用程序调用Method C500pchar时会崩溃。我尝试复制Release和Debug文件夹中的所有文件,甚至从文件夹运行exe,但只有在我从VS运行时才有效。
我做错了什么吗?
编辑:我正在Windows 7上工作并遇到此问题。但我已经尝试在Windows XP SP3上运行,并且正常工作。
StringBuilder
的代码。另外,Delphi 代码是做什么的?你怎么知道在StringBuilder
中分配多大的缓冲区?C500pchar
到底是做什么的?它是否将文本复制到传递给它的缓冲区中?有多少文本?返回值是什么?如果能够看到调用 DLL 的 Delphi 代码和完整的 C# 调用代码,那么我肯定可以找到错误。请将此作为问题的编辑。 - David Heffernan