将Pchar Delphi DLL导入C#?
我在delphi中有一个过程:
procedure PasswordDLL(month integer; password pchar);
export;
该过程应该输入密码到我传入的“密码”pchar ..
从我的谷歌和阅读....
参考:这里和这里
我想出来:
[DllImport(
"DelphiPassword.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi,
EntryPoint = "PasswordDLL")]
public static extern void PasswordDLL(
int month,
[MarshalAs(UnmanagedType.LPStr)] string password
);
然后当我打电话:
string pass = "";
PasswordDLL(2, pass);
所以输出到“pass”字符串的密码。
但我将得到BadImageFormatException未处理:尝试加载具有不正确格式的程序。 (HRESULT异常:0x8007000B)
听起来我用过的函数格式错了吗?
我想知道我是否为PChar使用了不正确的UnmanagedType,但从阅读中,它是LPWStr和LPStr ..我错过了什么吗?
提前致谢...
没有找到相关结果
已邀请:
1 个回复
膝垫富顷
看看.NET文档似乎没有符合Delphi注册约定的调用约定(见下表),所以我认为你唯一的选择可能就是改变Delphi DLL中的约定。
你的Delphi(6)Pchar(指向空终止的ANSI字符串的指针)编组看起来是正确的。