0

Delphi dll をインポートして、そのメソッドを使用しようとしています。

Delphi メソッドのシグネチャは次のとおりです。

function CALinkEncode(SubscriberID, MailshotID, LinkID: DWORD; sCode: PWideChar): HRESULT; stdcall; 

dll をインポートして関数を使用するための c# コードを次に示します。

    [DllImport(@"Decoder.dll", CharSet = CharSet.Ansi)]
    static extern string CALinkEncode(
        int SubscriberID,
        int MailshotID,
        int LinkID
    );

    public static string CALinkDecodeString(int cas, int cam, int cal)
    {
        string retvalptr = CALinkEncode(cas, cam, cal);

        return retvalptr;
    }

助けてください。

4

1 に答える 1

4

パラメーターが欠落しており、戻り値の型が間違っていて、文字セットが間違っています。そのはず:

[DllImport(@"Decoder.dll", CharSet = CharSet.Unicode)]
static extern uint CALinkEncode(
     uint SubscriberID,
     uint MailshotID,
     uint LinkID,
     string sCode
 );

文字列パラメーターは入力パラメーターであると想定しています。そうでない場合は、それを StringBuilder として宣言し、出力バッファーに十分な容量を持つ StringBuilder インスタンスを渡す必要があります。

.

于 2013-07-16T10:52:03.703 に答える