'windows.h': No such file or directoryというエラーを解決するには


松竹倍  2007-07-07 11:09:12  No: 65590

OS windows vista home premium

Visual C++ 2005 Express Editionで'windows.h': No such file or directoryというエラーがでます。

"Windows Vista™ および .NET Framework 3.0 ランタイム コンポーネント用 Microsoft® Windows® Software Development Kit"をインストールしたので、過去ログにあった様なPlatformSDKはインストールする必要が無いと思うのですが、何が原因なのでしょうか。

どうか教えてください。よろしくお願い致します。


Ban  2007-07-07 20:30:01  No: 65591

.NET framework用でないソフトを作るには、windows.hが必要です。
そして、C/C++で作るなら、.NET framework用でないソフトになります。
# C++/CLI (C++とは別の言語)を使うならwindows.hは要りませんが。


瀬戸っぷ  2007-07-07 21:12:42  No: 65592

> "Windows Vista™ および .NET Framework 3.0 ランタイム コンポーネント用  Microsoft® Windows® Software Development Kit"をインストールしたので、過去ログにあった様なPlatformSDKはインストールする必要が無いと思うのですが、何が原因なのでしょうか。

インクルードパスとかちゃんと設定できていないのでは?


松竹倍  2007-07-08 13:36:16  No: 65593

開発環境の詳細を説明すると
"0からのゲームプログラミング"というサイトのスケルトンプログラムを
実行しようとしています。 
directxで開発するためにVC、windows sdk、direct sdk (june2007)を
インストールしました。
directxは下位互換性があるらしいのでdirectx9で開発されたプログラムはdirectx10でも使えると思います。

今回変更した設定は

プロジェクト⇒プロパティ⇒C/C++⇒プリプロセッサ⇒標準インクルードパスの無視を”はい”に変更

ツール⇒オプション⇒VC++ディレクトリで  

実行可能ファイル       D:\winsdk\Bin

インクルード ファイル  D:\winsdk\include

ライブラリ ファイル    D:\winsdk\lib

3つを追加しました。ビルドすると

windows.h: インクルード パスが設定されていません。
'_UNICODE' : マクロが再定義されました。

というエラーが出ます。設定が間違っているのでしょうか


瀬戸っぷ  2007-07-08 22:26:17  No: 65594

> プロジェクト⇒プロパティ⇒C/C++⇒プリプロセッサ⇒標準インクルードパスの無視を”はい”に変更

とすると、
> インクルード ファイル  D:\winsdk\include
も無視されませんか?


松竹倍  2007-07-10 02:26:11  No: 65595

プロジェクト⇒プロパティ⇒C/C++⇒プリプロセッサ⇒標準インクルードパスの無視を"いいえ"に変更して
ビルドすると

'd3dx9.h': No such file or directoryというエラーがでます
'return' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。
'_UNICODE' : マクロが再定義されました。

というエラーが出ました。

対処するために、ツール⇒オプション⇒VC++ディレクトリで

実行可能ファイル       C:\Program Files\Microsoft DirectX SDK(June2007)\Utilities\Bin\x86

インクルード ファイル  C:\Program Files\Microsoft DirectX SDK(June2007)\Include

ライブラリ ファイル    C:\Program Files\Microsoft DirectX SDK(June2007)\Lib\x86

3つを追加しました。ビルドすると
'd3dx9.h': No such file or directoryというエラーは出なくなりましたが
100個以上のエラーが出るようになってしまいました。


瀬戸っぷ  2007-07-10 08:11:39  No: 65596

> 'd3dx9.h': No such file or directoryというエラーは出なくなりましたが
> 100個以上のエラーが出るようになってしまいました。

最初の10個程度でも掲示されては?

ところで…
http://www.plustarnet.com/aspil/Programming/Skeleton.htm
には、
> ※ DirectX 9.0b SDK ではコンパイルが通りません。
と書かれていますが……
Vistaで動くんでしょうかね?


どら  2007-07-10 23:05:28  No: 65597

ヘッダーファイルをincludeしても、DirectXの場合はほぼ100%ライブラリのリンクの設定が必要な筈ですが、それはされていますか?

ソース上に

#pragma comment(lib, "xxxx.lib")

といった記述がない場合、プロジェクトのプロパティで必要なライブラリを追加してあげないといけないはずです。
私はいつもpragma・・・でリンクの設定をしているのでプロジェクトのプロパティのどこで追加しなければならないか覚えていませんが・・・(確かリンカとか言う項目だったような・・・)

もし、本に付属のCDROMにあるソースを使っているのであれば、それらの利用するための設定方法が記述されているはずですが・・・


松竹倍  2007-07-11 02:26:15  No: 65598

エラーをある程度掲示します。

1>d:\suke\skeletonprogram\skeleton\win32\header\StdAfx.h(27) : warning C4005: '_UNICODE' : マクロが再定義されました。
1>        コマンド ラインの引数 : '_UNICODE' の前の定義を確認してください
1>d:\suke\skeletonprogram\skeleton\win32\header\CmdLine.h(32) : warning C4267: 'return' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。
1>d:\suke\skeletonprogram\header\..\Skeleton\Header\DllMain.h(35) : error C2383: 'SkeletonCameraView' : 既定の引数をこのシンボルで使用できません。
1>d:\suke\skeletonprogram\header\..\Skeleton\Header\DllMain.h(38) : error C2383: 'SkeletonCameraSetViewport2' : 既定の引数をこのシンボルで使用できません。
1>d:\suke\skeletonprogram\header\..\Skeleton\Header\DllMain.h(41) : error C2383: 'SkeletonErrorConstructor' : 既定の引数をこのシンボルで使用できません。
1>..\..\suke\SkeletonProgram\Source\ScreenStage.cpp(30) : error C2664: 'SkeletonDll::CFilePack::Begin' : 1 番目の引数を 'const char [15]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1>        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>..\..\suke\SkeletonProgram\Source\ScreenStage.cpp(34) : error C2664: 'SkeletonDll::CTexture::Read' : 2 番目の引数を 'const char [21]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1>        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

#pragma comment(lib, "xxxx.lib")についてですが、ソース上に2つ見つかりました。

#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "winmm.lib")

もう一つ似たようなのもありました。
#pragma comment(linker, "/comment:\" Copyright(C) 2003 ※※ ※※. All rights reserved. \"")

恐らくこれの事だと思います。


瀬戸っぷ  2007-07-11 09:00:22  No: 65599

いろいろいぢらないとダメそうですね…

とりあえず、コンパイルエラーが取れないとリンカまでは進まないので、ライブラリに関しては置いておきましょう。
#pragma指定されている様なのでおそらく問題ないと思いますが。

> warning C4005: '_UNICODE' : マクロが再定義されました。
> warning C4267: 'return' : 'size_t' から 'int' に変換しました。
ワーニングなのでこれも放置。(対処方法は検索してください)

> error C2664: 'SkeletonDll::CFilePack::Begin' : 1 番目の引数を 'const char [15]' から 'LPCTSTR' に変換できません。
> error C2664: 'SkeletonDll::CTexture::Read' : 2 番目の引数を 'const char [21]' から 'LPCTSTR' に変換できません。
文字列を他のところと同じく TEXT() でくくってください。

> error C2383: 'SkeletonCameraView' : 既定の引数をこのシンボルで使用できません。
これらがやっかいです。
C++の機能のデフォルト引数を使っていますが、関数ポインタの場合は使用できないようです。
(詳しくはヘルプをC2383で検索)
デフォルト引数を削除して、関連する関数ポインタの呼び出し部分に明示的に指定する。
ということになろうかと…
とりあえず、エラーになっている箇所のデフォルト引数を削除してみては…としか。
デフォルト値を使っているところがあれば、なんらかのエラーが出るでしょう。
typedef void (__stdcall *SkeletonCameraView)(Skeleton::CCameraDummy *pCamera, const D3DXVECTOR3 *pEye, const D3DXVECTOR3 *pAt, const D3DXVECTOR3 *pUp = &D3DXVECTOR3(0, 1, 0));

typedef void (__stdcall *SkeletonCameraView)(Skeleton::CCameraDummy *pCamera, const D3DXVECTOR3 *pEye, const D3DXVECTOR3 *pAt, const D3DXVECTOR3 *pUp);
と修正。


松竹倍  2007-07-13 10:19:01  No: 65600

error C2383: 'SkeletonCameraView' : 既定の引数をこのシンボルで使用できません。
このエラーが出たところの引数を削除しました。

error C2664: 'SkeletonDll::CFilePack::Begin' : 1 番目の引数を 'const char [15]' から 'LPCTSTR' に変換できません。
> error C2664: 'SkeletonDll::CTexture::Read' : 2 番目の引数を 'const char [21]' から 'LPCTSTR' に変換できません。
これらのエラーは下の二つのエラーの事です。
g_pFilePack->Begin("Data/Pack0.dat");
m_Texture.Read(g_pD3DDevice, "DataForWork/Jiki.bmp");

TEXTでくくるというのはこの様にすることでしょうか?
TEXT("Data/Pack0.dat");
TEXT(g_pD3DDevice, "DataForWork/Jiki.bmp");
変更すると上の二つのエラーとUNICODEのエラーが無くなり、新たなエラーが出ました。

1>..\..\suke\SkeletonProgram\Source\ScreenStage.cpp(34) : warning C4002: マクロ 'TEXT' に指定された実引数の数が多すぎます。
1>..\..\suke\SkeletonProgram\Source\ScreenStage.cpp(34) : error C2065: 'Lg_pD3DDevice' : 定義されていない識別子です。


松竹倍  2007-07-13 10:25:23  No: 65601

すいません。文の訂正をします。

”これらのエラーは下の二つのエラーの事です。”を

”これらのエラーは下の二つの箇所で出ています。”と訂正


瀬戸っぷ  2007-07-15 08:22:45  No: 65602

> これらのエラーは下の二つのエラーの事です。
> g_pFilePack->Begin("Data/Pack0.dat");
> m_Texture.Read(g_pD3DDevice, "DataForWork/Jiki.bmp");

一応、ソースは確認済みです。
ビルドはしていませんが。

> TEXTでくくるというのはこの様にすることでしょうか?
> TEXT("Data/Pack0.dat");
> TEXT(g_pD3DDevice, "DataForWork/Jiki.bmp");

TEXT()がどういうものかはMSDNなりで調べてください。
で、上側は正しいですが、下側は間違っています。
「他のところと同じく」と書いたのですが……


松竹倍  2007-07-17 10:22:30  No: 65603

TEXT("DataForWork/Jiki.bmp");
と変更し、ビルドすると

1>WinMain.obj : warning LNK4224: /COMMENT はサポートされていません。無視されます。
1>Application.obj : error LNK2001: 外部シンボル "__imp__CoUninitialize@0" は未解決です。
1>Application.obj : error LNK2001: 外部シンボル "__imp__MessageBoxW@16" は未解決です。
1>Application.obj : error LNK2001: 外部シンボル "__imp__CoInitialize@4" は未解決です。
1>ScreenInit.obj : error LNK2001: 外部シンボル "__imp__PostMessageW@16" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__DispatchMessageW@4" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__DefWindowProcW@16" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__DrawMenuBar@4" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__PeekMessageW@20" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__TranslateMessage@4" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__GetMessageW@16" は未解決です。
1>WinMain.obj : error LNK2001: 外部シンボル "__imp__TranslateAcceleratorW@12" は未解決です。
1>msvcrt.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です。
1>D:\pro\rokkome\Release\rokkome.exe : fatal error LNK1120: 外部参照 12 が未解決です。
1>ビルドログは "file://d:\pro\rokkome\Release\BuildLog.htm" に保存されました。

ヘルプから"error LNK2001"を検索し、どれがあてはまるのかを探しています。


Ban  2007-07-17 10:41:21  No: 65604

標準ライブラリがリンク対象になってませんね。
User32.dllかな。


Ban  2007-07-17 10:42:27  No: 65605

WinMainでなくmainが要求されてますね。


瀬戸っぷ  2007-07-18 09:25:01  No: 65606

> WinMainでなくmainが要求されてますね。

コンソールアプリ…ですか。
ソリューション(プロジェクト)の作成方法を違えたんでしょうか…。


松竹倍  2007-07-19 07:20:03  No: 65607

標準ライブラリの問題は

プロジェクト⇒プロパティ⇒構成プロパティ⇒リンカ⇒入力⇒追加の依存ファイルに
user32.libを追加してビルドすると
>WinMain.obj : warning LNK4224: /COMMENT はサポートされていません。無視されます。
1>Application.obj : error LNK2001: 外部シンボル "__imp__CoUninitialize@0" は未解決です。
1>Application.obj : error LNK2001: 外部シンボル "__imp__CoInitialize@4" は未解決です。
1>MSVCRT.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です。
1>D:\pro\rokkome\Release\rokkome.exe : fatal error LNK1120: 外部参照 3 が未解決です。

user32.libを消してuser32.dllを追加してビルドすると
LINK : fatal error LNK1181: 入力ファイル 'user32.dll' を開けません。というエラーが出ます。

プロジェクトの作成方法を書きます。
ファイル⇒新規作成⇒プロジェクト⇒win32コンソールアプリケーションを選択
⇒ソリューションのディレクトリを作成にチェックを入れる⇒プロジェクト名を入力⇒okを押す
追加のオプションで空のプロジェクトにチェックをいれる。

ソースファイルにcppファイルを追加
ヘッダーファイルにhファイルを追加
リソースファイルにrcファイルを追加


松竹倍  2007-07-19 07:46:39  No: 65608

LINK : fatal error LNK1181: 入力ファイル 'user32.dll' を開けません。を解決するため
プロジェクト⇒プロパティ⇒構成プロパティ⇒リンカ⇒全般⇒追加のライブラリディレクトリに
LIBPATH.dirを追加してビルドしてみましたが変わりはありませんでした。


RAPT  URL  2007-07-19 09:34:39  No: 65609

http://www.plustarnet.com/aspil/Programming/Skeleton.htm
からスケルトンのソースをDLしてみましたが、WinMain と書いてありますよね。
なので、ソリューションの作成方法が間違っています。
コンソールアプリではなく、Windows アプリ(だったかな)を選択し、
エントリポイントが WinMain (または _tWinMain) になるようにすれば
いけるはずです。


瀬戸っぷ  2007-07-19 09:38:56  No: 65610

Source\WinMain.cppにWinMain()があります。
コンソールアプリではないのです。

http://freepg.fc2web.com/cpp/topic_vce_001.html
の途中に、「Win32アプリケーションの生成と実行」というのがあります。
「Win32 アプリケーションウィザード」で「コンソール アプリケーション」ではなく、「Windows アプリケーション」を選択してください。

一般的に、コンソールアプリはmain()が、WindowsアプリはWinMain()がスタートアップルーチンから呼ばれます。

今回はコンソールで作成したので、リンカがmain()をリンクしようとしましたが見つからないため、
> MSVCRT.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です。
となっています。
逆にコンソールアプリを作っているのに、Windowsアプリケーションのプロジェクトを作ると、
> error LNK2001: 外部シンボル "_WinMain" は未解決です。
となります。


Ban  2007-07-19 09:52:44  No: 65611

> LINK : fatal error LNK1181: 入力ファイル 'user32.dll' を開けません。というエラーが出ます。

User32.dllを使うためのインポートライブラリがUser32.libです。
DLLは普通、直接リンクしません。

> win32コンソールアプリケーション

これも先に指摘してるように間違ってます。

CoInitializeなども、このAPIをMSDNで調べれば、必要なlibの名前が書いてあります。
追加してみて下さい。


松竹倍  2007-07-20 06:09:11  No: 65612

user32.dllを消してUser32.libを追加しました。
LIBPATH.dirはそのままにしておきました。

Win32アプリケーションの生成と実行を参考にさせていただきました。
[Win32 アプリケーション ウィザード]でWindowsアプリケーションを選択できませんでした。
選べるのはコンソールアプリケーションとスタティックライブラリだけでした。
CoInitialize等は現在検索中です。


松竹倍  2007-07-20 09:22:55  No: 65613

gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.libを追加してビルドました。

現在の状況を書きます。
1>WinMain.obj : warning LNK4224: /COMMENT はサポートされていません。無視されます。
1>MSVCRT.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です。
1>D:\pro\rokkome\Release\rokkome.exe : fatal error LNK1120: 外部参照 1 が未解決です。


michi  2007-07-21 00:46:32  No: 65614

このページの手順5は踏みましたか?
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/


松竹倍  2007-07-21 02:12:26  No: 65615

手順4と5を踏みF5を押しました。
何も書かれてないウインドウが表示されました。

成功したとは思うのですが実行後に
'hatikome.exe': 'D:\pro\hatikome\debug\hatikome.exe' を読み込みました。シンボルが読み込まれました。
'hatikome.exe': 'C:\Windows\System32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\user32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\advapi32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\rpcrt4.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\winsxs\x86_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.762_none_24c8a196583ff03b\msvcr80d.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\imm32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\msctf.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\lpk.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\usp10.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\uxtheme.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Program Files\JWord\Plugin2\jwdsrch.dll' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。
'hatikome.exe': 'C:\Windows\System32\shell32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\shlwapi.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\ole32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\oleaut32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6000.16386_none_87e0cb09378714f1\comctl32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\wininet.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\normaliz.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\iertutil.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\version.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\ws2_32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\nsi.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6000.16386_none_5d07289e07e1d100\comctl32.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\clbcatq.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\IMEJP10\IMJPTIP.DLL' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\oleacc.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IMJP10K.DLL' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\shared\IMETIP.DLL' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\shared\imecfm.dll' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\IMEJP10\IMJPAPI.DLL' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\shared\IMJKAPI.DLL' を読み込みました。シンボルが読み込まれていません。
'hatikome.exe': 'C:\Windows\System32\IME\shared\imecfm.dll' をアンロード
'hatikome.exe': 'C:\Windows\System32\IMJP10K.DLL' をアンロード
'hatikome.exe': 'C:\Windows\System32\IME\shared\IMJKAPI.DLL' をアンロード
'hatikome.exe': 'C:\Windows\System32\IME\IMEJP10\IMJPAPI.DLL' をアンロード
'hatikome.exe': 'C:\Windows\System32\IME\shared\IMETIP.DLL' をアンロード
'hatikome.exe': 'C:\Windows\System32\IME\IMEJP10\IMJPTIP.DLL' をアンロード
'hatikome.exe': 'C:\Windows\System32\oleacc.dll' をアンロード
プログラム '[8808] hatikome.exe: ネイティブ' はコード 0 (0x0) で終了しました。
と表示されました。

気になったのでソリューションのビルドをしてみると
========== ビルド: 0 正常終了、0 失敗、1 更新、0 スキップ ==========
と表示されました。
デバッグなしで開始をすると、ウインドウが表示され、エラー等は出ませんでした。
これらの表示に問題はありますか?


松竹倍  2007-07-21 02:41:42  No: 65616

windowアプリケーションを選択し、空のプロジェクトを作成。
ソースファイルにcppファイルを追加
ヘッダーファイルにhファイルを追加
リソースファイルにrcファイルを追加
ビルドすると
warning C4244: 'return' : 'WPARAM' から 'int' への変換です。データが失われる可能性があります。
warning LNK4224: /COMMENT はサポートされていません。無視されます。
デバッグなしで開始すると
LoadLibrary FAILEDというエラーウインドウが表示されます。
warningは調べてみましたが、よく分かりませんでした。もう少し時間をかけようと思います。


瀬戸っぷ  2007-07-21 09:20:27  No: 65617

"LoadLibrary FAILED"でGrepすると…
Skeleton\\Skeleton_d.dllかData\\Skeleton.dllのどちらかが読めなかったようです。
相対パスで書かれているので、EXEのあるフォルダにDATAというフォルダを作成して、その下にSkeleton.dllをコピー。
さらにEXEのアルフォルダにSkeletonというフォルダを作成してSkeleton_d.dllをコピー。
で、どちらか読まれるでしょう。


松竹倍  2007-07-22 10:31:07  No: 65618

EXEとは拡張子が.exeのファイルの事だと思うのですが
Skeletonフォルダの中は見当たりませんでした。
勘違いかもしれませんがビルドが成功しないとexeファイルは作成されないのではないでしょうか
それとも別のフォルダにあるのでしょうか?


michi  2007-07-22 10:44:20  No: 65619

> Skeletonフォルダの中は見当たりませんでした。

瀬戸っぷさんのおっしゃったEXEとは現在あなたが作っているアプリケーションの事です。


松竹倍  2007-07-22 21:04:07  No: 65620

二つのフォルダを作成して二つのファイルをコピーしました。
warningは消せてないのですが、DebugかReleaseを選ぶところで
Debugを選んで実行するとバグの様な名前のついたウインドウが表示され
その後にFILE OPEN ERRORというエラーウインドウが表示されました。
Releaseを選んで実行するとLoadLibrary FAILEDというエラーウインドウが表示されます。


松竹倍  2007-07-22 21:15:16  No: 65621

別のフォルダに、もう一つexeファイルがあったので、
フォルダごとコピーしました。
Releaseを選んで実行するとバグの様な名前のついたウインドウが表示されました。
エラーメッセージは特に無いです。Debugを選んで実行すると
バグの様な名前のついたウインドウが表示され
その後にFILE OPEN ERRORというエラーウインドウが表示されました。


RAPT  URL  2007-07-22 22:00:56  No: 65622

>バグの様な名前
このような抽象的なものではなく、きちんと書いたら、
もっと解決に近づけるとは思いませんか?

>warning LNK4224: /COMMENT はサポートされていません。無視されます。
この警告が出ているところで、#pragma comment( lib, "xxx.lib" )
とか書いてありませんか?

VC++2005 からは、インポートライブラリをソースコードから指定できなく
なったそうなので、ここでエラーになっているライブラリはプロジェクト
の設定で追加してください。そしてこの行を取り除けばOKです。

>FILE OPEN ERROR
この文字列でソースGrepしてみると原因がわかるかもしれません。


ななし  2007-07-23 05:08:52  No: 65623

あのーここは質問に答える場所じゃないんで、帰ってもらえる?
てゆーか死ねよ。お前は。


とおり  2007-07-23 05:57:34  No: 65624

毎年だけど夏休みが沸いてるし


松竹倍  2007-07-23 06:11:01  No: 65625

#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(linker, "/comment:\" Copyright(C) 2003 ※※ ※※. All rights reserved. \"")
以上の三つをソースから削除しました。

#pragma comment(lib, "winmm.lib")の前後にある
#ifdef  _MSC_VERと
#endifも
削除しました。

プロジェクト⇒プロパティ⇒構成プロパティ⇒リンカ⇒入力⇒追加の依存ファイルに
d3dx9.libとwinmm.libを追加しました。
Debugを選んで実行しても特に変わりませんでした。
その時に表示されるウインドウの名前は"・・w&#34970;卍棟操唯票楳慣&#31228;・><(特)士(-)イロ`簡棟"です。

Releaseを選んでビルドすると
外部シンボル "__imp__timeGetTime@0" は未解決です。
fatal error LNK1120: 外部参照 1 が未解決です。

探し方はヘルプを検索することが多いのですが、ソースGrepとは何ですか?


瀬戸っぷ  2007-07-23 10:07:19  No: 65626

> VC++2005 からは、インポートライブラリをソースコードから指定できなく
> なったそうなので、ここでエラーになっているライブラリはプロジェクト
> の設定で追加してください。そしてこの行を取り除けばOKです。

私、自前のプロジェクト(VC6.0からのコンバートですが)に下記を入れていますが問題ないです。
> #pragma  comment(lib, "comctl32.lib")
> #pragma  comment(lib, "wsock32.lib")
> #pragma  comment(lib, "winmm.lib")
> #pragma  comment(lib, "imm32.lib")
> #pragma  comment(lib, "htmlhelp.lib")

今回のは、
> #pragma comment(linker, "/comment:\" Copyright(C) 2003 ※※ ※※. All rights reserved. \"")
かと。

> Releaseを選んでビルドすると
> 外部シンボル "__imp__timeGetTime@0" は未解決です。
> fatal error LNK1120: 外部参照 1 が未解決です。
は、
> プロジェクト⇒プロパティ⇒構成プロパティ⇒リンカ⇒入力⇒追加の依存ファイルに
> d3dx9.libとwinmm.libを追加しました。
をReleaseに対しても行ってください。

> ソースGrepとは何ですか?
ソースファイルをgrepしてください。
ということです。
「grepってなんですか?」と言う場合は
http://www.google.co.jp/search?hl=ja&q=grep%E3%81%A8%E3%81%AF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

VCのテキストエディタではgrep出来ないでょうからツールとしては、
http://www.google.co.jp/search?hl=ja&q=windows+grep&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

外部のテキストエディタを使用している場合は、grep機能が付いているかも知れません。
# 秀丸なら[検索][grepの実行]で。

ちなみに、VC上から「デバッグあり」で起動した場合、前述のDLLを配置する位置が変わる可能性が高いので注意が必要です。


RAPT  URL  2007-07-23 11:09:09  No: 65627

> > VC++2005 からは、インポートライブラリをソースコードから指定できなく
> > なったそうなので、ここでエラーになっているライブラリはプロジェクト
> > の設定で追加してください。そしてこの行を取り除けばOKです。

> 私、自前のプロジェクト(VC6.0からのコンバートですが)に下記を入れていますが問題ないです。
あれ、勘違いだったのかな。すみません。

> grep
VC++2005 は使っていないので、わかりませんが、VC++6、VC++2003 では可能です。
(多分2005にもあると思います。)
「ファイルから検索」(VC++6)
「ファイル内の検索」(VC++2003)[Ctrl+Shift+F]
で検索ボックス内で「正規表現」を選択すれば可能です。


松竹倍  2007-07-25 04:08:24  No: 65628

Releaseに対してもd3dx9.libとwinmm.libを追加しました。
2007/07/22(日) 12:15:16 のレスと同じ状態になりました。

grepについてのことです。
"クイック検索"と"フォルダを指定して検索"のオプションで条件の項目に
チェックを付けて正規表現を選びました。
検索する文字列にFILE OPEN ERRORと入力して検索しましたが、特に見当たらなかったです。


michi  2007-07-25 04:32:58  No: 65629

確かに、FILE OPEN ERRORという文字列は見つからないですね。
おそらく、Skeleton.dll,Skeleton_d.dllの作成に使われた.cppファイルに書かれているのでしょう。当然dllを利用する側にはこの.cppファイルは、必要ないのでダウンロードしたものには入ってません。

「FILE OPEN ERROR」とのことなのでまだ、しかるべきところに配置されていないファイルがあるのでは?例えば、DataForWorkフォルダ内の画像ファイルとかは正しく、配置する必要があるのでは?


michi  2007-07-25 04:49:38  No: 65630

追記です。
ScreenStage.cppの34行目で"DataForWork/Jiki.bmp"を読み込もうとしてるようですが、Jiki.bmpは正しく配置しましたか?


とおり  2007-07-25 06:01:26  No: 65631

もういいでしょ解決で。


松竹倍  2007-07-25 10:13:45  No: 65632

ダウンロードしてからファイルの配置は変更してません。
DataForWorkフォルダの中にJiki.bmpを確認しました。

EXEのあるフォルダにDataForWorkフォルダをコピーして実行しましたが、変化なしでした。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加