簡體   English   中英

在c#中調用Delphi DLL“”,嘗試讀取或寫入受保護的內存。 ”錯誤

[英]Calling Delphi DLL in c# ““Attempted to read or write protected memory. ” error

我正在嘗試導入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;
    }

請幫忙。

您缺少參數,返回類型錯誤,並且字符集錯誤。 它應該是:

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

我假設string參數是一個輸入參數。 如果不是,則需要將其聲明為StringBuilder並傳遞一個具有足夠容量的StringBuilder實例用於輸出緩沖區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM