【发布时间】:2011-12-21 04:02:37
【问题描述】:
我的 c# 应用程序正在尝试将 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 位,则此调用可以正常工作。有什么想法吗?
【问题讨论】:
-
ThisCall是错误的。德尔福不这样做。使用stdcall。