0

DLLをコンパイルしようとして問題が発生しましたが、このリンクエラーがどこから来ているのかわかりません。

私のLNK2019は:

Exports.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int 
__thiscall CArray<struct HWND__ *,struct HWND__ *>::Add(struct HWND__ *)" (__imp_?Add@?
$CArray@PAUHWND__@@PAU1@@@QAEHPAUHWND__@@@Z) referenced in function "int __stdcall _Disable(struct 
HWND__ *,long)" (?_Disable@@YGHPAUHWND__@@J@Z)

Disable(...)は...

static BOOL CALLBACK _Disable(HWND hwnd, LPARAM lParam)
{
  CArray<HWND, HWND>* pArr = (CHWndArray*)lParam;
  if(::IsWindowEnabled(hwnd) && ::IsWindowVisible(hwnd))
  {
    pArr->Add(hwnd);
    ::Enable(hwnd, FALSE);
  }
}

これは、Exports.cppの最初の関数です。その真上は

#include <afxtempl.h>

Windows 7.1 SDKをインストールしています(そして、Windows 7.1 SDKとVS2010の両方を再インストールしてみました)。まったく同じプロジェクトが他のマシンで完全に正常にコンパイルされるため、コード自体ではありません。調査に数え切れないほどのエラーを費やし、さまざまなWindowsヘッダーを含むソリューションファイルのランダムな値を変更するという必死の試みにつながりました。私の最後の手段は、OSを完全に再インストールすることです(実際には、Windows SDKが正しくないか何かの問題であると想定しています)。

どんな提案でも大きな助けになるでしょう。

編集:cppの問題に/ showIncludesを追加しましたが、afxtempl.hが含まれているのがわかります。それを含む他のヘッダーのために複数回含まれていますが、そこにあります(そしてそれは毎回同じディレクトリからのものです):

1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxtempl.h
4

1 に答える 1

0

質問に答えるためだけに、SVNからすべてを再チェックアウトし、すべてを再コンパイルすることになりました。私たちのプロジェクトの1つは、何らかの理由で何かを台無しにしていたと思います。

于 2012-10-26T00:11:30.563 に答える