使用Visual C ++ 2008,我有一个"未解析的外部符号"即使使用IDE,我也可以正确地看到函数的声明和定义:
错误:
hook_file.obj : error LNK2001: unresolved external symbol "int __cdecl is_directory_objattr(struct _OBJECT_ATTRIBUTES const *)" (?is_directory_objattr@@YAHPBU_OBJECT_ATTRIBUTES@@@Z)
hook_file.cpp中的相关代码:
#include "misc.h"
void handle_new_file(HANDLE file_handle, const OBJECT_ATTRIBUTES *obj)
{
if(is_directory_objattr(obj) == 0 ) {
// etc.
misc.h文件中的声明:
BOOL is_directory_objattr(const OBJECT_ATTRIBUTES *obj);
misc.cpp文件中的定义:
#include "misc.h"
BOOL is_directory_objattr(const OBJECT_ATTRIBUTES *obj)
{ //function body here }
我真的没有得到链接器在这里抱怨的内容。
任何想法都错了吗?
谢谢!
答案 0 :(得分:0)
您是否只包含一次头文件?
在misc.h中
#ifndef MISC
#define MISC
...
#endif MISC ?