VS2010Win32コンソールアプリケーションがあります。このコンソールアプリケーション内で、ウィンドウを子として別のWin32アプリにアタッチしようとしています。しかし、アプリケーションをリンクしません(コンパイルします。リンカーがAFAIKを発行するだけです)。
Error 1 error LNK2019: unresolved external symbol "long __stdcall viewproc(struct HWND__ *,unsigned int,unsigned int,long)" (?viewproc@@YGJPAUHWND__@@IIJ@Z) referenced in function "void __cdecl createFSXWindow(void)" (?createFSXWindow@@YAXXZ) H:\Projects\VisualStudioNet2010\FSXTests\Menu Items\Menu Items\MenuItems.obj Menu Items
Win32WindowsプロジェクトのすべてのライブラリをLinker/includeの下に追加しました。
kernel32.lib;user32.lib;gdi32.lib;winspool.lib; comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib; odbccp32.lib;%(AdditionalDependencies)
備考:明確にするために、私はウィンドウをコンソールウィンドウにアタッチしようとはしませんが、別のWin32アプリケーションをアタッチしようとします。したがって、「win32コンソールアプリにウィンドウを表示させる」ということではありません。
次のようなウィンドウコードを追加すると、問題が発生します。
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <strsafe.h>
....
// window
WNDCLASSEX wc;
wc.style = CS_HREDRAW | CS_VREDRAW ;
wc.lpfnWndProc = viewproc;
リンカーのコマンドラインを確認すると、コンソールアプリとWin32アプリの唯一の違いはSUBSYSTEM:CONSOLE
vsです。SUBSYSTEM:WINDOWS
ヒントはありますか?