繁体   English   中英

C#和VB.NET控制台会话之间的区别

[英]Difference between C# and VB.NET console session

好的,所以我用C ++编写了这段代码 ,并调用了SetThreadDesktop函数。 在Windows XP上以系统用户身份运行时,我从dll调用此函数。

从C#控制台应用程序调用时,该函数成功,但是从VB.NET控制台应用程序调用时,该函数不会成功。 使用GetLastError ,我看到了错误消息是这样的:

SetThreadDesktop failed with error 170: The requested resource is in use (translated from french)

它如何适用于C#控制台应用程序而不适用于VB.NET? 顺便说一句,它对于Winform应用程序也不起作用。 .NET主管可以向我解释吗? 我必须更改它的编译器选项吗?

谢谢

尝试添加<MTAThread>在您(VB)属性主要方法中说明这里

缺省情况下,这实际上是C#和VB Console项目之间唯一的区别。

您不应该将extern函数声明为public shared吗?

<DllImport("AltCtrlDelCpp.dll")> _
Public Shared Function SimulateAltControlDel() As Boolean

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM