0

私のC#コード:

bvt = Activator.CreateInstance(Type.GetTypeFromProgID("xxx.BVT"));

// calling a function that terminates with an error
bvt.GiveMeAnError();

var msg = "";
long number = 0L;
bvt.GetLastError(number, msg);

result = "Errornumber:"+ number + " Errormessage:"+ msg;

結果は次のとおりです。

「エラー番号:0 エラーメッセージ:」

私の問題は関数GetLastError()です。この関数の実行後にNumberandmsgを含める必要がありerrornumberます。messageしかし、彼らはまだemptyです。

誰か助けてくれませんか?

* 編集 *

次のコードを VBScript として実行しました。

Dim StdOut
Set StdOut = WScript.StdOut
Set bvt = CreateObject( "xxx.BVT" )

bvt.GiveMeAnError()

bIsLastErr = bvt.GetLastError( ErrNo, ErrMsg )
StdOut.WriteLine( "Erronumber: " & ErrNo & ", Errormessage: " & ErrMsg )

cscript を使用したこの VBScript は正常に動作しています。エラーメッセージと番号も取得します。したがって、GetLastError() メソッドが機能します。

4

2 に答える 2

1

コードキャスターありがとう!

問題は「var」と「long」でした。もちろん、参照によって変数を渡す必要があります。ここに私の作業コードがあります:

object number = null;
object msg = null;

// ... do some stuff with Errors ...

bvt.GetLastError(ref number, ref msg);

return "" + number.ToString() +" - " + msg.ToString() + "\n";
于 2015-05-27T12:37:42.290 に答える