1

Delphi ネイティブ dll を .net にインポートする際に問題が発生しています。System.EntryPointNotFoundExceptionを取得しています。

ここに私のデルファイDLLがあります:

procedure ProcedimientoEncriptar(texto,clave,resultado:PChar); export stdcall;
    var ...
    begin
    ....
    ....
    end;

    exports
      ProcedimientoEncriptar ;

そして、これが.Net(C#)コード上の私のDllImportです:

[DllImport("CryptoDLL.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
        public static extern void ProcedimientoEncriptar([MarshalAs(UnmanagedType.LPStr)]string texto, [MarshalAs(UnmanagedType.LPStr)]string clave, [MarshalAs(UnmanagedType.LPStr)] StringBuilder resultado);

助けていただければ幸いです、ディエゴ。

4

1 に答える 1

4

唯一の説明System.EntryPointNotFoundExceptionは、C# コードが検出している DLL が、表示されている Delphi コードから生成された DLL ではないということです。そのため、C# コードが古いバージョンの DLL を取得している可能性があります。または、まったく異なる DLL を取得している可能性があります。

たとえば、私のシステムにはcryptdll.dll、system32 ディレクトリにある名前の DLL があります。ほとんどの場合、それは C# コードが検出している DLL です。

適切な DLL が確実に見つかるようにするには、Delphi DLL のコピーを C# 実行可能ファイルと同じディレクトリに配置する必要があります。

于 2012-09-27T14:03:10.987 に答える