vc++ 2010 -未声明的标识符在DLL中的尝试,少量代码

VC++ 2010 - Undeclared Identifier in attempt at DLL, small amount of code

本文关键字:代码 DLL 2010 未声明 标识符 vc++      更新时间:2023-10-16

c++新手。我试图把一些WIA函数在DLL。我一直在IWiaDevMgr变量上获取和未声明的标识符。在创建项目时,我选择了Win32控制台应用程序和DLL应用程序类型。不确定这是否重要,但我把它放在了wiaguid上。项目中的Libproperties -> Linker -> input -> additional dependencies

这段代码有什么问题?

MyDLL.h

#include <wia.h>
namespace MyDLL
{
    class MyFirstFuncs
    {
        public:
              static __declspec(dllexport) int doWork();      
    };
}

MyDLL.cpp

#include "MyDLL.h"
namespace MyDLL
{
    int MyFirstFuncs::doWork()
    {
         IWiaDevMgr *pIWiaDevMgr;
    }   
}

我遇到了完全相同的问题。经过反复试验,我发现

#include <windows.h>
#include <wia.h>

修复问题

我是一个c++新手,所以不能告诉你为什么这个工作的确切原因。可能WIA依赖于WINDOWS.H中的一些定义/宏/任何东西

检查包含头文件的顺序。这可能与我在编程Directshow应用程序时遇到的问题相同。我在d3d9.h之前包含了vmr9.h。在构建过程中,编译器会触发有关vmr9.h中包含的d3d9对象的错误。