[英]“Attempted to read or write protected memory. This is often an indication that other memory is corrupt.” Delphi7 DLL from C#
[英]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.