我正在尝试导入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;
}
请帮忙。
答案 0 :(得分:4)
您缺少参数,返回类型错误,字符集错误。它应该是:
[DllImport(@"Decoder.dll", CharSet = CharSet.Unicode)]
static extern uint CALinkEncode(
uint SubscriberID,
uint MailshotID,
uint LinkID,
string sCode
);
我假设字符串参数是输入参数。如果没有,那么你需要将它声明为StringBuilder并传递一个具有足够容量的StringBuilder实例用于输出缓冲区。