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()Number并且msg应该包含这个函数执行后的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

谢谢 CodeCaster!

问题是“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 回答
0

您需要通过引用传递变量,因为它们显然是在方法中设置的:

bvt.GetLastError(ref number, ref msg);
于 2015-05-27T10:17:46.173 回答