在64位机器上从C#调用64位Delphi DLL

时间:2011-11-03 12:56:52

标签: c# delphi winapi 64-bit

我的c#app我试图调用Delphi DLL构建为64位。我一直收到错误声明“试图加载一个格式不正确的程序。(HRESULT异常:0x8007000B”。我在Windows 7 64位机器上运行,并将我的C#项目设置为任何CPU。

API调用

[DllImport("Cipher.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.ThisCall)]
public static extern void Encrypt(StringBuilder szPlainText, StringBuilder  zCipherText);

Encrypt(plainString, encText);    

如果Delphi DLL构建为32位,则此调用正常。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

由于某种原因,您的应用程序不是作为64位而是以32位进程运行。如果你需要做这样的事情,最好指定“x64”而不是“AnyCPU”。