DXライブラリ3D導入方法に関するビルドエラーの解決方法

このQ&Aのポイント
  • Visual C++ 2008を使用してDXライブラリ3Dを導入する際に発生するビルドエラーの解決方法を紹介します
  • ビルドエラーの中でも特に、外部シンボルが未解決となるエラーが発生する場合の対処方法について説明します
  • 参考にさせていただいたサイトでは、VS2005での解決方法が紹介されていましたが、本記事ではVS2008を対象に解説します
回答を見る
  • ベストアンサー

DXライブラリ3D導入方法

Visual C++ 2008使用 DXライブラリ3D導入時に下記のビルドエラーが発生します。 --------------------------------------------------------------- リンクしています... DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicPerformance" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicPerformance8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicLoader" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicLoader8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicSegment" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicSegment8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_GUID_StandardMIDIFile" は未解決です。 LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 C:\Documents and Settings\ABC\デスクトップ\test\Debug\test.exe : fatal error LNK1120: 外部参照 8 が未解決です。 ---------------------------------------------------------------- 下記URLに同様の問題に関する質問が投稿されていたのですがVS2005のようですので解決できませんでした。 またリンクが正しくない、といった内容の記述を見かけたのですがリンクの方法がわかりません。 解答お願いします。 参考にさせていただいたサイト http://fatalita.sakura.ne.jp/3DLib/Install/LIB/index.html http://fatalita.sakura.ne.jp/CGI/3DLib2/read.cgi?no=11

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 こんばんは。 >>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されまし た。  此れに関しては、WinMain関数が存在しないからだと思います。    残りに関しては、  #pragma comment(lib, "dxguid.lib")  #pragma comment(lib, "dsound.lib")  と書いて見ては如何でしょうか。  以下の様な感じです(今調べれる状態に無いので推測になってしまいますが・・・) #define INITGUID #include<windows.h> #pragma comment(lib, "dxguid.lib") #pragma comment(lib, "dsound.lib") int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR pszCmd, int nCmdShow) { return 0; }

kigi137
質問者

お礼

解答有難うございます。 掲載されたソースにて検証してみたのですが、ご教授いただいた構文を使用しなくても LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 のエラーは発生しなくなりました。 PSDK-x86を再インストールしたのですがその結果かどうかはわかりません。 現在のエラー内容は -------------------------------------------------------- リンクしています... DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicPerformance" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicPerformance8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicLoader" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicLoader8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_CLSID_DirectMusicSegment" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_IID_IDirectMusicSegment8" は未解決です。 DxLibAd.lib(mL_Sound.obj) : error LNK2001: 外部シンボル "_GUID_StandardMIDIFile" は未解決です。 C:\Documents and Settings\ABC\デスクトップ\test\Debug\test.exe : fatal error LNK1120: 外部参照 7 が未解決です。 -------------------------------------------------------- となっております。 もしお気づきの点など御座いましたら再度のご投稿宜しくお願いします。

関連するQ&A

  • 外部シンボル未解決 LNK2001

    外部シンボル未解決 LNK2001 外部シンボル未解決 LNK2001 今windowsXP32bitからwindowsXP64bitPCでのデバッグを行おうとしています。 開発環境VC++2005です。 しかし、32bitPCでは、エラーなどなかったのですが64bitPCだと次のようなエラーが発生しました。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DP8SP_TCPIP" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlayVoiceClient" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlayVoiceClient" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "PIN_CATEGORY_PREVIEW" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IBasicVideo" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_VideoInputDeviceCategory" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_SystemDeviceEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_ICreateDevEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IMediaControl" は未解決です。 とエラーがでています。 一応構成マネージャーの設定は、64x設定しています 何か設定などたりないのでしょうか? よろしくお願いします。

  • 外部シンボル未解決 LNK2001

    外部シンボル未解決 LNK2001 今windowsXP32bitからwindowsXP64bitPCでのデバッグを行おうとしています。 開発環境VC++2005です。 しかし、32bitPCでは、エラーなどなかったのですが64bitPCだと次のようなエラーが発生しました。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DP8SP_TCPIP" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlayVoiceClient" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlayVoiceClient" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "PIN_CATEGORY_PREVIEW" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IBasicVideo" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_VideoInputDeviceCategory" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_SystemDeviceEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_ICreateDevEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IMediaControl" は未解決です。 とエラーがでています。 一応構成マネージャーの設定は、64x設定しています 何か設定などたりないのでしょうか? よろしくお願いします。

  • 外部シンボル未解決 LNK2001

    外部シンボル未解決 LNK2001 今windowsXP32bitからwindowsXP64bitPCでのデバッグを行おうとしています。 開発環境VC++2005です。 しかし、32bitPCでは、エラーなどなかったのですが64bitPCだと次のようなエラーが発生しました。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DP8SP_TCPIP" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Address" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlay8Client" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultCapture" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>MainteDlg.obj : error LNK2001: 外部シンボル "DSDEVID_DefaultPlayback" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "CLSID_DirectPlayVoiceClient" は未解決です。 5>DirectPlay.obj : error LNK2001: 外部シンボル "IID_IDirectPlayVoiceClient" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "PIN_CATEGORY_PREVIEW" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IBasicVideo" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_VideoInputDeviceCategory" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "CLSID_SystemDeviceEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_ICreateDevEnum" は未解決です。 5>DirectShow.obj : error LNK2001: 外部シンボル "IID_IMediaControl" は未解決です。 とエラーがでています。 一応構成マネージャーの設定は、64x設定しています 何か設定などたりないのでしょうか? よろしくお願いします。

  • DXライブラリ3DをVisual C++2008EEに導入したい!

    ・・・のですが、導入方法が間違えたのか、あるいはどこか欠けていたのか、訳の分からないエラーが発生しました。僕はこれを見ても何処が間違えたのかがさっぱりです。一体どこに・・・? ちなみに、普通のDXライブラリと同じやり方で導入しました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::ScreenFlip(void)" (?ScreenFlip@myLib_c@@QAEJXZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::DrawTeapot(struct D3DXVECTOR3,struct D3DXVECTOR3,float,float,struct _LCOLOR,bool)" (?DrawTeapot@myLib_c@@QAEJUD3DXVECTOR3@@0MMU_LCOLOR@@_N@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::SetCamera(struct D3DXVECTOR3,struct D3DXVECTOR3)" (?SetCamera@myLib_c@@QAEJUD3DXVECTOR3@@0@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: enum G::KeyType_e __thiscall myLib_c::GetKey(void)" (?GetKey@myLib_c@@QAE?AW4KeyType_e@G@@XZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::DrawCameraPoint(float,float,unsigned long,bool)" (?DrawCameraPoint@myLib_c@@QAEJMMK_N@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::AdjustFPS(int)" (?AdjustFPS@myLib_c@@QAEJH@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: unsigned long __thiscall myLib_c::CLS(unsigned long)" (?CLS@myLib_c@@QAEKK@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::MessageProcess(void)" (?MessageProcess@myLib_c@@QAEJXZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::Init(struct HWND__ *)" (?Init@myLib_c@@QAEJPAUHWND__@@@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2001: 外部シンボル ""class myLib_c mL" (?mL@@3VmyLib_c@@A)" は未解決です。 C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\xxx3d\Debug\3d.exe : fatal error LNK1120: 外部参照 10 が未解決です。 と出ました。 あと、入れたソースは #include "DxLib.h" int DxMain() { if ( FAILED( mL.Init() ) ) //ライブラリの初期化処理 return -1; VECTOR3 EyePoint( 0, 0, -4 ); //カメラのある座標(視点) VECTOR3 LookAtPoint( 0, 0, 0 ); //カメラが見つめる座標(注視点) // ウィンドウのメッセージ処理を行い、エラーが無い限りループ while ( SUCCEEDED( mL.MessageProcess() ) ) { mL.CLS(); //画面をクリア mL.AdjustFPS(60); //FPSを調整 mL.DrawCameraPoint( 10, 10 ); //カメラ座標を描画 // キー入力 switch ( mL.GetKey() ){ case G::KEY_UP: EyePoint.y++; break; //上キー case G::KEY_DOWN: EyePoint.y--; break; //下キー } mL.SetCamera( EyePoint, LookAtPoint ); //カメラをセット mL.DrawTeapot( VECTOR3( 0, 0, 0 ) ); //ティーポットを描画 mL.ScreenFlip(); //裏画面を表画面に反映 } return 0; } ・・・です。

  • 「外部シンボル "_DirectDrawCreate@12" は未解決」って???

    外国のサイトで拾ってきたVisual C++のソースコードをコンパイルしたら 次のようなエラーが出ました。 --------------------------------- (1) test.obj : error LNK2001: 外部シンボル "_DirectDrawCreate@12" は未解決です (2) nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です (3) nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です (4) Debug/prog.exe : fatal error LNK1120: 外部参照 3 が未解決です。 (5) link.exe の実行エラー --------------------------------- 特に、(1)~(3) の意味がよく分かりません。 Readmeを見ると、「コンパイルすればいい」としか書いてないのですが、、、 もし原因がわかったらお願いします。

  • DLL呼び出しAPのリンクエラーについて

    DLL作成初心者です。 当方で簡単なDLLを作成しました。 試しに、下記の呼び出しAP(EXE)を作成しようと したのですが、リンクエラーになります。 どうしてでしょうか? 呼び出しAP #include <windows.h> int main(){ static HINSTANCE hDLL; hDLL = LoadLibrary(TEXT("DLL_TEST.DLL")); if (hDLL) FreeLibrary(hDLL); return 0; } リンクエラーは下記 IBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/TEST.exe : fatal error LNK1120: 外部参照 1 が未解決です また上記"_WinMain@16"のライブラリーをリンクさせると SCRNSAVE.LIB(scrnsave.obj) : error LNK2005: _main はすでに test.obj で定義されています SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverProc@16" は未解決です SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverConfigureDialog@16" は未解決です SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_RegisterDialogClasses@4" は未解決です Debug/TEST.exe : fatal error 等のエラーになります。 解決策を教えてください。

  • ビデオキャプチャ(VC++超初心者です)

    こんにちわ。 私は最近BorlandからVC++に変えたものです。 そこで、ビデオキャプチャを行うプログラムが載ったサイトのサンプルコードを実行させてみました。  http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html このサイトの「DirectShowでビデオキャプチャ」のサンプルコードです。 VC++の手順が違うのか、ライブラリがないのか・・・ エラーは以下のようにでますが、解決しません。 ********************************************************** リンク中... VCap.obj : error LNK2001: 外部シンボル "_CLSID_CaptureGraphBuilder2" は未解決です VCap.obj : error LNK2001: 外部シンボル "_IID_ICaptureGraphBuilder2" は未解決です Debug/VCap.exe : fatal error LNK1120: 外部参照 2 が未解決です。 link.exe の実行エラー VCap.exe - エラー 3、警告 0 ********************************************************** どうしてでしょうか? ご教授お願いします。

  • IEコンポーネント使用でリンクエラー

    Windows XP SP2 + VC++6.0 + IE6 SP2 で IEコンポーネントを使用するプログラムを作成しています。 MFC は使用していません。 このプロジェクトをビルドするとリンクエラーが発生します。 *****.obj : error LNK2001: 外部シンボル "_IID_IHTMLFormElement2" は未解決です *****.obj : error LNK2001: 外部シンボル "_IID_IHTMLInputElement" は未解決です 「mshtml.libをリンクすべし」と言っているサイトがあったのですが mshtml.lib なるファイルが私の環境にはありません。 どこかで入手できるものなのでしょうか。探しましたがわかりませんでした。 また、「mshtml.tlbをインポートすべし」というサイトもあったのですが インポートしても同じリンクエラーが発生します。 ちなみに使用している各ファイルの日付は以下の通りです。 MsHTML.h 2005/04/14 mshtml.tlb 2004/08/05 どうかアドバイスをお願いいたします。

  • ビルドする時のエラー。(初心者です)

    リンク中... LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/MousMov.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー というエラーがでます。 何がいけなくて対処方法はどうすればいいのでしょう。 初めてビルドするときは、エラーは何も出ないのですがもう一回するとこのエラーがでます。どうすればいいんですか?よろしくお願いします。

  • VC6.0でエラー

    環境:winNT4.0,vc6.0 コンソールアプリケーション作成でデバックモードではエラー、警告は、出ないのですが リリースモードで下記のようなエラーがでます。 エラーを消すにはどうしたらよいのでしょうか? 宜しくお願いします。 --------------------構成: muktc - Win32 Release-------------------- リンク中... muktc.obj : error LNK2001: 外部シンボル "_WSACleanup@0" は未解決です muktc.obj : error LNK2001: 外部シンボル "_WSAStartup@8" は未解決です muktc.obj : error LNK2001: 外部シンボル "_WSAGetLastError@0" は未解決です muktc.obj : error LNK2001: 外部シンボル "_gethostname@8" は未解決です muktc.obj : error LNK2001: 外部シンボル "_NetRemoteTOD@8" は未解決です Release/muktc.exe : fatal error LNK1120: 外部参照 5 が未解決です。 link.exe の実行エラー muktc.exe - エラー 6、警告 0

専門家に質問してみよう