2011-12-23 8 views
1

C++ newbieここに。私はいくつかのWIA関数をDLLに入れようとしています。私はIWiaDevMgr変数の識別子と宣言されていない識別子を取得し続けます。プロジェクトを作成するとき、私はWin32コンソールアプリケーションとDLLアプリケーションタイプを選択しました。問題があるかどうかわかりませんが、プロジェクトにwiaguid.libを入れます properties -> Linker -> input -> additional dependenciesVC++ 2010 - DLLの試行で宣言されていない識別子、少量のコード

このコードで何が問題になっていますか?

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; 
    } 
} 
+0

dllプロジェクトまたはdllを使用する別のモジュールでエラーが発生しますか? –

+0

実際のコードを掲載することはできますか?また、正確なエラーが表示されていますか? –

+0

私はこれが実際のコードであると仮定しますが、 'DllEntryPoint'関数(およびそれを含むソースファイル)が欠落しています。 DLLを作成しようとしている場合、コンソールアプリケーションを作成するのは奇妙に思えます。 –

答えて

0

あなたのヘッダファイルが含まれている順序を確認してください。私がDirectShowアプリケーションをプログラミングするのと同じ問題かもしれません。私はd3d9.hの前にvmr9.hを含んでいました。ビルドプロセス中、コンパイラはvmr9.hに含まれるd3d9オブジェクトに関するエラーを発生させました。問題を解決するためにインクルージョンを並べ替える必要がありました

+0

応答ありがとうございますが、それはコード全体であり、ヘッダファイルは1つだけです。 –

1

私は全く同じ問題がありました。試行錯誤の結果、私はそれを見つけました。

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

問題を修正しました。

私はC++初心者でもありますので、これがなぜ機能するのか正確な理由を教えていただけませんでした。おそらくWIAはWINDOWS.Hのいくつかの定義/マクロ/何にも依存しています。

関連する問題