jax*_*jax 1 c++-cli visual-studio
我想在程序的主线程上使用 STAThread 属性。但是,Visual Studio 表示找不到它。我已经尝试引用必要的程序集并使用正确的命名空间,但它只是找不到它。
编辑:
在使用 ApartmentState 到 STA 手动创建线程后,我已经能够成功工作。我认为这相当于设置线程,无论是主线程,但不完全是因为我正在创建另一个线程。任何人都有其他方法可以做到这一点。
这是代码:
void threadStart ()
{
Application::Run (gcnew GraphicsForm());
}
[System::STAThread] // This will not work!
int main(array<System::String ^> ^args)
{
Thread ^t = gcnew Thread(gcnew ThreadStart (threadStart));
t->ApartmentState = ApartmentState::STA;
t->Start();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我在 Visual Studio 2012 中创建一个新的 C++/CLI 项目时,只有一个main()函数,然后[System::STAThread]在前面添加main(),它编译和运行没有问题。对我来说,这意味着很可能是项目之间的设置差异。
我的建议是做同样的事情。创建一个新的 C++/CLI 项目,添加[System::STAThread]并查看是否有任何问题。如果没有,那么您需要检查两个项目之间的差异,以确定为什么一个项目工作正常而另一个项目给您带来错误。
| 归档时间: |
|
| 查看次数: |
6939 次 |
| 最近记录: |