1

我有一个必须使用的第三方 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 入口点异常。

我还尝试以不同的方式指定入口点,例如:

  1. [DllImport("CCP.dll", EntryPoint = "CCP.CCPActiveX.CCP_Init")]
  2. [DllImport("CCP.dll", EntryPoint = "CCPActiveX.CCP_Init")]

等等。但什么都没有改变。

我在 Windows xp x86 上测试了 delphi 代码。还有 C# 代码 - 在 Windows 7 x64 上。在这两个操作系统上,dll 都已成功注册到 regsvr32.exe。我究竟做错了什么?

4

0 回答 0