VC ++ 2010 - необъявленный идентификатор при попытке DLL, небольшой объем кода - PullRequest
1 голос
/ 23 декабря 2011

C ++ новичок здесь. Я пытаюсь поместить некоторые функции WIA в DLL. Я продолжаю получать и необъявленный идентификатор для переменной IWiaDevMgr. При создании проекта я выбрал консольное приложение Win32 и тип приложения DLL. Не уверен, если это имеет значение, но я поместил wiaguid.lib в проект properties -> 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;
    }   
}

Ответы [ 2 ]

1 голос
/ 23 мая 2012

У меня была точно такая же проблема.Методом проб и ошибок я обнаружил, что

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

решает проблему.

Я новичок в C ++, поэтому не могу сказать вам точную причину, почему это работает.Вероятно, WIA зависит от некоторых определений / макросов / чего угодно в WINDOWS.H

0 голосов
/ 23 декабря 2011

Проверьте порядок, в котором вы включили заголовочные файлы.Это может быть та же проблема, что и у меня при программировании приложения Directshow.Я включил vmr9.h до d3d9.h.В процессе сборки компилятор выдавал ошибки, касающиеся объектов d3d9, включенных в vmr9.h.Мне пришлось изменить порядок включений, чтобы решить проблему

...