gpt4 book ai didi

c# - Delphi 调用非托管 dll 工作正常,但 C# 不

转载 作者:行者123 更新时间:2023-11-30 16:26:27 24 4
gpt4 key购买 nike

我看过一些关于我的问题的主题,但它们对我的帮助不是很清楚。

我的问题是:我有一个从第三方调用外部 dll 的 Delphi 7 应用程序(我无权访问源代码)。我正在尝试将 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 运行时有效。

我做错了什么吗?

编辑:我正在使用 Windows 7 并面临这个问题。但我试过在 Windows XP SP3 上运行并且运行良好。

最佳答案

您的项目在 Visual Studio 中以 32 位模式运行,但直接运行时以 64 位模式运行。您必须更改项目设置,使其在 x86 而不是 any cpu 中运行。

关于c# - Delphi 调用非托管 dll 工作正常,但 C# 不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com