C# から dll 内で Delphi 関数を呼び出しています。ここにデルファイ関数の署名があります -
function CALinkDecode(sCode: PWideChar; SubscriberID, MailshotID, LinkID: PDWORD):
PAnsiChar; stdcall;
そして、これが私がそれを呼んでいる方法です。
string input = "qvoxyetvr7wksss2zbrmr";
int cas, cam, cal;
var errorString = CALinkDecode(input, out cas,
out cam, out cal);
しかし、アプリを実行すると、この条件が Delphi 関数で true として評価されます -
if (sCode = nil) or (Length(sCode) <> 21) or (SubscriberID = nil) or (MailshotID = nil) or (LinkID = nil) then
begin
Result := 'E_INVALIDARG';
end
関数シグネチャの正しいデータ型を渡しているかどうか、およびそれを行う正しい方法は何かを知りたいだけです。ありがとう。