トップページ > 過去ログ > 記事閲覧
VC++2005のビルド
名前:DX 日時: 2007/06/10 16:55

VC++2005でビルドしようとしたら したのエラーがでてしまいます ちゃんとこちらの設定どおりやってるんですけど できなかったのでよろしくおねがいします libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_execute_transformation が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_execute が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_adjust_parameters が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_request_workspace が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_setup が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _write_stdout が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_stdin が関数 _main で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_scan_script が関数 _parse_switches で参照されました。 libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _keymatch が関数 _parse_switches で参照されました。 C:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\DX2\Debug\DX2.exe : fatal error LNK1120: 外部参照 9 が未解決です。

Page: 1 |

Re: VC++2005のビルド ( No.1 )
名前:キーチック 日時:2007/06/11 02:12

設定通りやれば出来ると思いますよ.わたしは出来ましたし... とりあえず,エラー内容からするとmain関数を使用しているようですが,Winmain関数を使うことに注意が必要です. あと,read_scan_script,keymatch,parse_switchesなどの外部シンボルとされているものは,もしかするとDXライブラリにも標準関数にもない自作の関数名のように思います. それらについては,使用する前に関数定義がされているか,その使用の宣言がされているなどしないと,こういうエラーになることが多いように思います. もしかすると過去のCプログラムを流用しているのかもしれませんが,どうやらDXライブラリはC++上でCの記述を行っているだけですので,一部の作法はC++に従って修正する必要があると思います.
Re: VC++2005のビルド ( No.2 )
名前:DX 日時:2007/06/11 16:03

そのソースはこのようになってます Winmainはつかってますよ #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x, add; // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); // メインループ(何かキーが押されたらループを抜ける) x = 0; add = 8; while( ProcessMessage() == 0 && CheckHitKeyAll() == 0 ) { // 画面のクリア ClearDrawScreen(); x += add; if( x < 0 || x > 640 ) add = -add; DrawBox( x, 0, x + 100, 100, GetColor(255,0,0), TRUE ); // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
Re: VC++2005のビルド ( No.3 )
名前:lunar 日時:2007/06/11 21:40

#include "DxLib.h" しかしていないのであれば、その DxLib.h がDXライブラリのものではないものが include されているのかもしれません。 VC++では分からないのですが、 bccではWinMainを使用しているときにmain(という名の関数)を使うとエラーになります。 (下記のようなエラーが出ます) もしかしたら、mainという名の関数は使わないほうがいいのかもしれません。 エラー E2120 *******.cpp ***: プログラムの中からは main を呼び出せない(関数 __st dcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
Re: VC++2005のビルド ( No.4 )
名前:キーチック 日時:2007/06/12 02:24

とりあえず,DXさんのソースをわたしが使っている環境にいれたら問題なく動きました. 「使い方」の ttp://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2005express.html#R2 あたりのところを微妙に抜かしたのではないでしょうか. 丁寧にやれば動くと思いますので再挑戦してみて配下がでしょう. あるいはハードウェア環境と言う線もなくはないかもしれませんが…

Page: 1 |