我有一个第三方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。我做错了什么?