开发环境:vc6.0+xp系统
我写了一个对话框程序,但是在源文件中要实现的功能有很多,我想把这个cpp文件按功能分成多个文件进行,以便代码维护,代码合在一起运行是正常的,我试着将代码分开,但是一直没有成功,并且报如下错误:
QPSK.cpp
Generating Code...
Linking...
QPSK.obj : error LNK2005: "void * ProcessHandle" (?ProcessHandle@@3PAXA) already defined in newTecADlg.obj
QPSK.obj : error LNK2005: "unsigned long ThreadID" (?ThreadID@@3KA) already defined in newTecADlg.obj
QPSK.obj : error LNK2005: "unsigned long ThreadIDRev" (?ThreadIDRev@@3KA) already defined in newTecADlg.obj
QPSK.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl threadRev(void *)" (?threadRev@@YAIPAX@Z)
QPSK.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl thread(void *)" (?thread@@YAIPAX@Z)
Debug/newTecA.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
我写了一个对话框程序,但是在源文件中要实现的功能有很多,我想把这个cpp文件按功能分成多个文件进行,以便代码维护,代码合在一起运行是正常的,我试着将代码分开,但是一直没有成功,并且报如下错误:
QPSK.cpp
Generating Code...
Linking...
QPSK.obj : error LNK2005: "void * ProcessHandle" (?ProcessHandle@@3PAXA) already defined in newTecADlg.obj
QPSK.obj : error LNK2005: "unsigned long ThreadID" (?ThreadID@@3KA) already defined in newTecADlg.obj
QPSK.obj : error LNK2005: "unsigned long ThreadIDRev" (?ThreadIDRev@@3KA) already defined in newTecADlg.obj
QPSK.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl threadRev(void *)" (?threadRev@@YAIPAX@Z)
QPSK.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl thread(void *)" (?thread@@YAIPAX@Z)
Debug/newTecA.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
解决方案 »
- 网络深入学习的疑问
- 问一个关于乱码的问题~~~~
- 如果学Win32看《windows核心编程》可以不
- 基于CRecordView类的对话框显示问题
- [200分]紧急请帮助,一个WinAPI转换到MFC应用程序中的问题,在线等候[在.NET下的VC.NET有一个同样的问题,解决200分],
- 想考高级程序员...........
- 如何改变视窗的背景颜色
- 如何在基于对话框的程序中添加自己的加速键?
- ◆我从CListView派生一个子类CAbc,在CAbc中建立了一个CEdit,让CEdit撑大整个CAbc,那CListView那个Header怎么去掉呢???
- 花时间写个简单的编译器对编程水平提高有没有帮助
- 急求,怎样在VC2005中添加鼠标右键菜单
- 请教高手:对同一个缓冲区,一个线程往里写数据,一个从中读取数据,需不需要做临界区同步处理?
后两个需要定义成static
如果有全局/外部变量,在类中用extern声明,在其中一个CPP文件中定义就可以了。