1

使用しなければならないサードパーティの dll ライブラリが 1 つあります。次の非常に単純な 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 上。両方の OS で、dll は regsvr32.exe に正常に登録されています。私は何を間違っていますか?

4

0 に答える 0