用向导生成SDI界面,工程名Thd,然后进行以下两步:
1。添加一个线程函数:UINT ThreadFun(LPVOID pParam)
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}2。重载OnInitialUpdate()
void CThdView::OnInitialUpdate()
{
AfxBeginThread(ThreadFun, NULL);
CView::OnInitialUpdate();
}??编译通过,连接时出错如下
Linking...
MainFrm.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
ThdDoc.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
ThdView.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
Debug/Thd.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.why??????????????
1。添加一个线程函数:UINT ThreadFun(LPVOID pParam)
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}2。重载OnInitialUpdate()
void CThdView::OnInitialUpdate()
{
AfxBeginThread(ThreadFun, NULL);
CView::OnInitialUpdate();
}??编译通过,连接时出错如下
Linking...
MainFrm.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
ThdDoc.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
ThdView.obj : error LNK2005: "unsigned int __cdecl ThreadFun(void *)" (?ThreadFun@@YAIPAX@Z) already defined in Thd.obj
Debug/Thd.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.why??????????????
解决方案 »
- 海康采集卡截图问题
- OpenGL纹理问题
- 编译错误:致命错误 RC1121: RC : fatal error RC1121 : I/O error reading file,请问如何解决?
- VC中对话框出问题
- 高分请教获取本地连接状态显示框中发送和接收数据包数量,在线等,急!!!
- VC,MFC如何把出错信息打印到文件中?谢谢
- 请老王近来领分
- 为什么有些API的例子在2000下可以运行。98下就不行了。
- 做一个字典想要显示音标该怎么办?
- 我想做一个类似windows里的资源管理器.................
- 如何在不显示对话框的情况下向其中的列表框中添加一项?
- 作一个动态图象控件(例如一个直线)到底需要多少工作?答者有分,快来啊!送100分
该符号为封装函数(通过用 /Gy 编译创建),包含在多个文件中,但在各编译间已改变。重新编译所有包含 symbol 的文件。
以不同的形式在不同库中的两个成员对象中定义了该符号,并且使用了这两个成员对象。
某个绝对符号被定义两次,而每次定义的值不同。
头文件声明并定义了变量。可能的解决方案有:
在 .h 中声明变量:extern BOOL MyBool;,然后在 .c 或 .cpp 文件中向它分配:BOOL MyBool = FALSE;。
将变量声明为 Static。
将变量声明为 selectany。
当将 uuid.lib 与定义 GUID 的其他 .lib 文件(例如 oledb.lib 和 adsiid.lib)一起使用时。例如:
oledb.lib(oledb_i.obj) : error LNK2005: _IID_ITransactionObject
already defined in uuid.lib(go7.obj)
若要修复,请将 /FORCE:MULTIPLE 添加到链接器命令行选项,并确保 uuid.lib 是引用的第一个库。 有关更多信息,请参阅知识库文章: Q148652,PRB: LNK2005 Errors When Link C Run-Time Libraries Are Linked Before MFC Libraries。
Q140440,FIX: Global Overloaded Delete Operator Causes LNK2005。
Q184235,PRB: LNK2005 Errors on New and Delete When Defining _ATL_MIN_CRT。
该错误之后为致命错误 LNK1169。
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}
你是写在头文件里面的吧,移到cpp文件里面就行了
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}
申明为全局的,既放在.cpp的几个#include语句之后
static UINT ThreadFun(LPVOID pParam);调用
AfxBeginThread((AFX_THREADPROC)ThreadFun, this, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
UINT ThreadFun(LPVOID pParam);
在ThdView.cpp文件中
UINT ThreadFun(LPVOID pParam)
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}
UINT ThreadFun(LPVOID pParam);
stdafx.cpp中
UINT ThreadFun(LPVOID pParam)
{
while(1)
{
Beep(100, 100);
Sleep(1000);
}
return 0;
}