Delphi调用非托管dll运行良好,但C#没有;t
本文关键字:没有 调用 运行 dll Delphi | 更新日期: 2023-09-27 18:19:49
我看到了一些关于我的问题的主题,但它们对我的帮助不太清楚。
我的问题是:我有一个Delphi7应用程序,它从第三部分调用外部dll(我无法访问源代码)。我正在尝试将Delphi代码转换为C#(.NET 2.0).
以下是调用dll的delphi代码:
function C500pchar(Comando : pchar):Integer; stdcall; external 'c50032.dll' name 'C500';
这是我调用相同dll的C#代码:
[DllImport("C50032.DLL", CallingConvention = CallingConvention.StdCall, EntryPoint = "C500")]
static extern int C500pchar(StringBuilder Comando);
当我从Visual Studio 2005运行这个C#代码时,它运行得很好,但当我尝试运行exe文件时,当应用程序调用方法C500pchar时,它会崩溃。我试着从Release和Debug文件夹中复制所有文件,甚至从文件夹中运行exe,但当我从VS.运行时,它就可以工作了
我做错什么了吗?
编辑:我正在使用Windows7并面临这个问题。但我试过在WindowsXPSP3上运行,运行得很好。
您的项目在visualstudio中以32位模式运行,但直接运行时以64位模式运行。您必须更改项目设置,使其在x86中运行,而不是在任何cpu中运行。