重定义的问题
我在VS2005下建立了一个窗体应用程序。
在stdafx.h文件中包含了一个头文件。
并在一个按钮事件中调用了一下这个头文件的函数ERS_Open(1,5000,5000);
此时问题出现了,提示下面的信息
stdafx.obj : error LNK2005: "void * * ers_hcom" (?ers_hcom@@$$Q3PAPAXA) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ers_check(int)" (?ers_check@@$$FYMHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_Config(int,unsigned int)" (?ERS_Config@@$$FYMHHI@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_RecvTimeOut(int,int)" (?ERS_RecvTimeOut@@$$FYMHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_SendTimeOut(int,int)" (?ERS_SendTimeOut@@$$FYMHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_Open(int,int,int)" (?ERS_Open@@$$FYMHHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int * ers_initdone" (?ers_initdone@@$$Q3PAHA) 已经在 1.obj 中定义
C:\Documents and Settings\cyd\桌面\新建文件夹\1\Debug\1.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
请问这个怎么解决?
下面是stdafx.h的内容
#pragma once
#include "erslib.h"
2楼是"erslib.h"的代码
在stdafx.h文件中包含了一个头文件。
并在一个按钮事件中调用了一下这个头文件的函数ERS_Open(1,5000,5000);
此时问题出现了,提示下面的信息
stdafx.obj : error LNK2005: "void * * ers_hcom" (?ers_hcom@@$$Q3PAPAXA) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ers_check(int)" (?ers_check@@$$FYMHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_Config(int,unsigned int)" (?ERS_Config@@$$FYMHHI@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_RecvTimeOut(int,int)" (?ERS_RecvTimeOut@@$$FYMHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_SendTimeOut(int,int)" (?ERS_SendTimeOut@@$$FYMHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int __clrcall ERS_Open(int,int,int)" (?ERS_Open@@$$FYMHHHH@Z) 已经在 1.obj 中定义
stdafx.obj : error LNK2005: "int * ers_initdone" (?ers_initdone@@$$Q3PAHA) 已经在 1.obj 中定义
C:\Documents and Settings\cyd\桌面\新建文件夹\1\Debug\1.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
请问这个怎么解决?
下面是stdafx.h的内容
#pragma once
#include "erslib.h"
2楼是"erslib.h"的代码
...全文
相关推荐
C 语言变量,函数重定义问题
以上这些原则不仅可以帮助避免变量和函数的重定义问题,还能提高代码的质量和可维护性。
重定义问题/函数是否需要extern?
代码还原现象可能导致之前解决的问题重现,也可能会引入新的问题。在软件开发实践中,避免重定义问题和代码还原现象是非常重要的。开发者应确保每个变量和函数只在一个地方定义,并通过头文件在其他地方进行声明。
enum类型重定义解决方法
解决这个问题的一种方法是通过预处理器指令 `#pragma` 或 `rename` 来避免重定义。
解决C++中重定义的方法总结
为了解决这个问题,程序员可以采取多种策略。以下是对C++中重定义问题及其解决方法的详细分析:1.
键盘键位重定义
在使用RemapKey或其他类似软件时,用户应了解不同操作系统可能存在的兼容性问题,以及可能与其他键盘驱动冲突的风险。


VC.NET
