你是否正在寻找关于initializecriticalsection的内容?让我把最实用的东西奉献给你:
以下代码总是显示错误:
MyAntsDlg.cpp(35):errorC2501:'initializecriticalsection':missingstorage-classortypespecifiers
MyAntsDlg.cpp(35):errorC2373:'initializecriticalsection':redefinition;differenttypemodifiers
c:\microsoftvisualstudio\vc98\include\winbase.h(2145):seedeclarationof'initializecriticalsection'
MyAntsDlg.cpp(35):errorC2440:'initializing':cannotconvertfrom'struct_RTL_CRITICAL_SECTION*'to'int'
代码如下:
CRITICAL_SECTIONgbLock;
initializecriticalsection(&gbLock);
intu=0;
以上在CPP文件的开头,include...之后定义
......
voidCMyAntsDlg::OnOK()
{
while(u<3)
{
EnterCriticalSection(&gbLock);
AfxBeginThread(ThreadDown,NULL);
}
DeleteCriticalSection(&gbLock);
}
全局函数ThreadDown的定义如下
UINTThreadDown(LPVOIDiP)
{
inti=u;
u++;
LeaveCriticalSection(&gbLock);
CStringiname;//以下3句用于显示i
iname.Format("%d",i);
AfxMessageBox(iname);
....
}
如果把开头的两句:
CRITICAL_SECTIONgbLock;
initializecriticalsection(&gbLock);
移到voidCMyAntsDlg::OnOK()定义之中,则以上错误消失,但是LeaveCriticalSection(&gbLock);在全局函数ThreadDown中无效,。
请问怎么解决?
目的是想显示0,1,2(不要求顺序)
分享到:
以上就是关于initializecriticalsection的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-1904-1.html
确实没办法和美国人来硬的
胡说