【C/C++】Allegroを使ったプログラミングについて。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Debugon
記事: 6
登録日時: 11年前

【C/C++】Allegroを使ったプログラミングについて。

#1

投稿記事 by Debugon » 11年前

皆さん始めまして、Debugonと申します。
この度は解決方法が見つからなかった為、このサイトに足を運びました。
利用は初めてなので、フォーラムルールのテンプレに則って質問させていただきます。

[1] 質問文
 [1.1] 自分が今行いたい事は何か
 VC++ 2013でAllegroを使いたい。

 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
 導入の際、公式のwiki(http://wiki.allegro.cc/index.php?title= ... _Allegro_5)を利用しました。
 VC++ 2010での導入方法なのでVC++2013では違うかもしれません。
 ネットでは、VC++ 2012の方法もありましたが、ライブラリをプログラムファイルのフォルダに追加する形式だったので行いませんでした。

・Allegroは、https://www.allegro.cc/files/から allegro-5.0.10-msvc-11.0.zip をダウンロード。
・その後、VC++ 2013にて空のプロジェクトを作成。(プロジェクト名:Allegro_Test)
・ソースファイルにmain.cppを作成後、wiki記載のコードをコピー&ペースト。
 

コード:

#include <stdio.h>
#include <allegro5/allegro.h>
 
int main(int argc, char **argv)
{
   ALLEGRO_DISPLAY *display = NULL;
 
   if(!al_init()) {
      fprintf(stderr, "failed to initialize allegro!\n");
      return -1;
   }
 
   display = al_create_display(640, 480);
   if(!display) {
      fprintf(stderr, "failed to create display!\n");
      return -1;
   }
 
   al_clear_to_color(al_map_rgb(0,0,0));
 
   al_flip_display();
 
   al_rest(10.0);
 
   al_destroy_display(display);
 
   return 0;
}
・Allegro_Testのプロパティを開き、
構成プロパティ→C/C++→全般 の「追加のインクルードディレクトリ」にて C:\Debugon\Programming\Allegro\include を追加。
構成プロパティ→リンカー→全般 の「追加のライブラリディレクトリ」にて C:\Debugon\Programming\Allegro\lib を追加。
構成プロパティ→リンカー→入力 の「追加の依存ファイル」にて allegro-5.0.10-monolith-md-debug.lib を追加。
構成プロパティ→デバッグ の「環境」にて PATH=C:\Toshinori\Programming\Allegro\bin;%PATH% を追加。

適応後、構成をReleaseに変更し上記と同様の変更をしました。
・ローカル windows デバッガーをクリックし、デバッグ。
・MSVCR110D.dllが無いと言われhttp://jp.dll-files.com/msvcr110d.dll.htmlからダウンロード

 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
 「アプリケーションを正しく起動できませんでした(0xc000007b)。OKをクリックしてアプリケーションを閉じてください。」と表示され、起動できませんでした。
念のため、デバッグの出力元も記載しておきます。
'Allegro_Test.exe' (Win32): 'C:\Users\Delta\Dropbox\Projects\Allegro_Test\Debug\Allegro_Test.exe' が読み込まれました。シンボルが読み込まれました。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Program Files (x86)\Norton Internet Security\NortonData\21.1.0.18\Definitions\BASHDefs\20140121.001\UMEngx86.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Debugon\Programming\Allegro\bin\allegro-5.0.10-monolith-md-debug.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\lpk.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\usp10.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\winmm.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\shell32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18120_none_72d2e82386681b36\GdiPlus.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\comdlg32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\comctl32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\opengl32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\glu32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\ddraw.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\dciman32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\setupapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\cfgmgr32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\oleaut32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\devobj.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Allegro_Test.exe' (Win32): 'C:\Windows\SysWOW64\dwmapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
プログラム '[4404] Allegro_Test.exe' はコード -1073741701 (0xc000007b) で終了しました。

 [1.4] 今何がわからないのか、知りたいのか
 個人的にはVS2013でAllegroを使えればいいのですが、「PDB ファイルを開けないか、ファイルが見つかりません。」という文が気になります。
 これは、1つ1つダウンロードしなければならないのでしょうか。
 それか、インストール方法が違うのかもしれないので、ご指摘していただけたらうれしいです。

[2] 環境  
 [2.1] OS : Windows7 Home Premium
 [2.2] コンパイラ名 : VC++ 2013 Express

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 【C/C++】Allegroを使ったプログラミングについて。

#2

投稿記事 by みけCAT » 11年前

似たトピックを短い間隔で何個も作らないでください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Debugon
記事: 6
登録日時: 11年前

Re: 【C/C++】Allegroを使ったプログラミングについて。

#3

投稿記事 by Debugon » 11年前

すみません、一度途中で送ってしまったようです。
先ほど、削除しました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 【C/C++】Allegroを使ったプログラミングについて。

#4

投稿記事 by softya(ソフト屋) » 11年前

エラー的には64bit版と32bit版が混在した時によくエラーですね。
「PDB ファイルを開けないか、ファイルが見つかりません。」
は気にしなくてよいです。
デバッガのデバッグ情報がないと言うワーニングですが、SysWOW64にあるdllのデバッグ情報なんて個人が持っているはずがないんで。

【追記】
MSVCR110D.dllはマイクロソフトの再配布禁止物なので配布されている奴が本物かとか、ウィルス入りじゃないかとか気になります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Debugon
記事: 6
登録日時: 11年前

Re: 【C/C++】Allegroを使ったプログラミングについて。

#5

投稿記事 by Debugon » 11年前

環境ですが、Windows7 Home Premium 64bit でプログラミングをしています。
これは、32bit OSでないと開発できなかったりするのでしょうか・・・。
また、SysWOW64に追加したMSVCR110D.dllを見てみましたが、マイクロソフトのデジタル署名がありました。
一応ウィルススキャンしましたが、引っかかりませんでした。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 【C/C++】Allegroを使ったプログラミングについて。

#6

投稿記事 by softya(ソフト屋) » 11年前

OSの32/64bitとコンパイルされるプログラムの32/64bitは別なので、何もしていないならプログラムは32bit用にコンパイルされます。
SysWOW64(32bitのdllが格納されている)から読み込まれているので32bit用にコンパイルされていると見て間違いないですね。
で、Allegroのdllが64bit用だったりするとかありませんでしょうか。

【追記】
MSVCR110D.dllって64bit/32bitに別れてなかったですかね。
どちらにしろ怪しいので消して下さい。

【追記の追記】
正式なものはvisual studio2012 expressをインストールすれば付いてきます。
2013と併用可能です。
ただ、MSVCR110D.dllとMSVCR120D.dllが同時に動くのかかなり疑問です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Debugon
記事: 6
登録日時: 11年前

Re: 【C/C++】Allegroを使ったプログラミングについて。

#7

投稿記事 by Debugon » 11年前

Allegroをダウンロードした際に、バージョンが分かれていなかったので大丈夫だと思います。

MSVCR110D.dllをダウンロードしたときは、1つのファイルしかありませんでした。
念のため削除しましたが、「コンピューターに MSVCR110D.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」と表示され、デバッグできません。
MSVCR110D.dllをダウンロードし、追加する前にも表示されたのでVS2013の再インストールをしましたが直りませんでした。

【追記】
「MSVCR110D.dllをダウンロードし、追加する前にも表示されたのでVS2013の再インストールをしましたが直りませんでした。」では、語弊がありますね。
正しくは、「MSVCR110D.dllをダウンロードし、追加する前にVS2013の再インストールをしましたが直りませんでした。」

【追記2】
公式より、Visual Studio 2012 Express が無くなっていたので諦めていましたが、
NonSoft様のサイト(http://homepage2.nifty.com/nonnon/China ... 21201.html)にWeb版インストローラがあったので
ダウンロードしてみます。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 【C/C++】Allegroを使ったプログラミングについて。

#8

投稿記事 by へにっくす » 11年前

Debugon さんが書きました:MSVCR110D.dllをダウンロードし、追加する前にVS2013の再インストールをしましたが直りませんでした。
softyaさんとかぶりますが、MSVCR110D.dllはVS2012で初めてインストールされるものです。
VS2013には入ってませんから、当然の結果でしょう。

そもそもdllがないからといってVS2012公式以外の場所からDLLをダウンロードするなんて安易すぎます。
Debugon さんが書きました:公式より、Visual Studio 2012 Express が無くなっていたので諦めていましたが、
NonSoft様のサイト(http://homepage2.nifty.com/nonnon/China ... 21201.html)にWeb版インストローラがあったので
ダウンロードしてみます。
VS2013を使うのであれば必要無いはずのDLLです。
なぜallegroのページには、MSVC 9、10、11のリンクがあるのかちょっと考えれば分かりそうなものなのに・・・

VS2013で使用したいのであれば、ソースコードを落として自らVS2013用のallegroのライブラリを作成するしかありませんよ。
それか、allegroの作成元にVS2013用のを作ってくれと言うしかないと思います。
written by へにっくす

Debugon
記事: 6
登録日時: 11年前

Re: 【C/C++】Allegroを使ったプログラミングについて。

#9

投稿記事 by Debugon » 11年前

さきほど、Visual Studio 2012 にてビルドしてみました。
ビルドエラーがあり起動できなかったものの、「MSVCR110D.dllが無い」と言われなくなりました。
エラーについて記載しておきます。

エラー 1 error LNK1104: ファイル 'gdi32.lib' を開くことができません。 C:\Users\Delta\Dropbox\Projects\Allegro_Test\Allegro_Test\LINK Allegro_Test

gdi32.libが開けないといわれましたが、プロジェクトの保存場所にLINKフォルダ(ファイル)はありませんでした。
調べたところ、Windows SDK の単語がよく出ますが関係があるのでしょうか。

・へにっくす様
 そうですね、Windowsフォルダに入るようなものをインターネットから直接落とすのは危険すぎますね。
今後は、そのようなことが無いようにします。
 また、当初Visual Studio 2013 を使用したかったのは、Visual Studio 2012 が公式にアップデートファイルしか無かった為そうしました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 【C/C++】Allegroを使ったプログラミングについて。

#10

投稿記事 by softya(ソフト屋) » 11年前

GDI(gdi32.lib)はWindowsAPIの一部ですので、Windows SDK に関係します。
ただ、Visual StudioとWindows SDK は同時インストールされるので普通なら入っているはずです。

Visual Studio2013を先に入れたせいで環境面でおかしなところが出ているのかも。
↓参考
http://detail.chiebukuro.yahoo.co.jp/qa ... 3115021188
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Debugon
記事: 6
登録日時: 11年前

Re: 【C/C++】Allegroを使ったプログラミングについて。

#11

投稿記事 by Debugon » 11年前

先ほど、Visual Studio 2013 をアンインストールし、Visual Studio 2012 を再インストールしました。
早速ビルドしてみると、Allegro公式のチュートリアル通りに10秒間ウィンドウを表示してくれました。
Visual Studio 2012 向けに作られたライブラリをVisual Studio 2013 で動かそうという考えが悪かったようです。
公式に無いからといって、別の物で動かそうと考えずに探すべきでした。
こんな、初心者丸出しの質問に付き合ってくれて有難うございます。

【解決方法】
・Visual Studio 2012 がマイクロソフトの公式にはアップデートファイルしか残ってないため、ネットからWeb版インストローラを落としてインストール。
・Visual Studio 2012 でプロジェクトを作成し、デバッグ。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: 【C/C++】Allegroを使ったプログラミングについて。

#12

投稿記事 by ISLe » 11年前

MD(マルチスレッドDLL)版以外のライブラリファイルならそのまま2013で使えたりしないのでしょうかね。

閉鎖

“C言語何でも質問掲示板” へ戻る