我有一个必须使用的第三方 dll 库。以下非常简单的 delphi 代码可以完成这项工作:
var
CCPActiveX:variant;
begin
CCPActiveX:=CreateOleObject('CCP.CCPActiveX');
CCPActiveX.CCP_Init('arg1','arg2');
//...
CCPActiveX:=unassigned;
end;
但是,我希望在 C# 上也能进行同样的工作。我尝试像这样导入 dll 方法:
class CCP
{
[DllImport("CCP.dll")]
private static extern int CCP_Init(string arg1, string arg2);
public static int Init(string arg1, string arg2)
{
return CCP_Init(arg1, arg2);
}
}
但是它会导致找不到 DLL 入口点异常。
我还尝试以不同的方式指定入口点,例如:
[DllImport("CCP.dll", EntryPoint = "CCP.CCPActiveX.CCP_Init")]
[DllImport("CCP.dll", EntryPoint = "CCPActiveX.CCP_Init")]
等等。但什么都没有改变。
我在 Windows xp x86 上测试了 delphi 代码。还有 C# 代码 - 在 Windows 7 x64 上。在这两个操作系统上,dll 都已成功注册到 regsvr32.exe。我究竟做错了什么?