言語:VC++ / Ver:2005 / プラットフォーム:Windows XP お世話になります.
OpenGLの初期化を以下のようなコードで行おうとしているのですが,Win32アプリケーション(昔のスタイル)ではうまくビルドできるのですが,"Windowsフォーム アプリケーション"テンプレートで作成するとコンパイルは通るのですが,リンクが出来ません.
何か良い方法がありましたら,ご教授をお願いいたします.
テンプレートで発生されるメイン関数がtWinMainではなく,
単なるmain関数なのが駄目な原因なのでしょうか?
==== 初期化コード ===============
void CSetup::initOpenGL()
{
//ピクセルフォーマットの初期設定
PIXELFORMATDESCRIPTOR pfd = //ピクセルフォーマットの属性を定義
{
sizeof(PIXELFORMATDESCRIPTOR), //構造体のサイズ
1, //構造体のバージョン番号
PFD_DRAW_TO_WINDOW //特性フラグ
| PFD_SUPPORT_OPENGL
| PFD_DOUBLEBUFFER, //animation機能を使用
PFD_TYPE_RGBA, //カラーモード
24, //カラービット数(各色256モード)
0,0,0,0,0,0, //無関係
0,0,0,0,0,0,0, //アルファバッファとアキュムレーションバッファはなし
32, //32ビットデプスバッファ
0,0, //ステンシルバッファと補助バッファは使わない
PFD_MAIN_PLANE, //主レイヤタイプ
0, //予約されている
0,0,0 //サポートされていない
};
//上で決めたフォーマットに最も近いこのデバイスのフォーマットを得る
int pixelFormat = ChoosePixelFormat(hDC, &pfd);
if(pixelFormat == 0) {
MessageBox::Show("失敗","OpenGL:致命的エラー1"); }
//ピクセルフォーマットのセット
BOOL success = SetPixelFormat(hDC, pixelFormat, &pfd);//これを実行すると画面が消える
if(success == false) {
MessageBox::Show( "失敗","OpenGL:致命的エラー2"); }
//レンダリングコンテキストのハンドルを得る
hRC = wglCreateContext(hDC);
//hRCをカレントとし、DCと結合する
wglMakeCurrent(hDC, hRC);
//背景色(すべて0.にすると黒)
glClearColor(0.9f,0.9f,0.9f,1.0f);
//カラーバッファとデプスバッファをクリア
glClear(GL_COLOR_BUFFER_BIT); //カラーバッファをクリア
glClear(GL_DEPTH_BUFFER_BIT); //デプスバッファをクリア
}
===== エラーメッセージ ===============
glTest02.obj : error LNK2028: 未解決のトークン (0A00001D) "extern "C" int __stdcall SetPixelFormat(struct HDC__ *,int,struct tagPIXELFORMATDESCRIPTOR const *)" (?SetPixelFormat@@$$J212YGHPAUHDC__@@HPBUtagPIXELFORMATDESCRIPTOR@@@Z) が関数 "public: void __clrcall CSetup::initOpenGL(void)" (?initOpenGL@CSetup@@$$FQAMXXZ) で参照されました。
1>glTest02.obj : error LNK2028: 未解決のトークン (0A00001F) "extern "C" int __stdcall ChoosePixelFormat(struct HDC__ *,struct tagPIXELFORMATDESCRIPTOR const *)" (?ChoosePixelFormat@@$$J18YGHPAUHDC__@@PBUtagPIXELFORMATDESCRIPTOR@@@Z) が関数 "public: void __clrcall CSetup::initOpenGL(void)" (?initOpenGL@CSetup@@$$FQAMXXZ) で参照されました。
1>glTest02.obj : error LNK2019: 未解決の外部シンボル "extern "C" int __stdcall SetPixelFormat(struct HDC__ *,int,struct tagPIXELFORMATDESCRIPTOR const *)" (?SetPixelFormat@@$$J212YGHPAUHDC__@@HPBUtagPIXELFORMATDESCRIPTOR@@@Z) が関数 "public: void __clrcall CSetup::initOpenGL(void)" (?initOpenGL@CSetup@@$$FQAMXXZ) で参照されました。
1>glTest02.obj : error LNK2019: 未解決の外部シンボル "extern "C" int __stdcall ChoosePixelFormat(struct HDC__ *,struct tagPIXELFORMATDESCRIPTOR const *)" (?ChoosePixelFormat@@$$J18YGHPAUHDC__@@PBUtagPIXELFORMATDESCRIPTOR@@@Z) が関数 "public: void __clrcall CSetup::initOpenGL(void)" (?initOpenGL@CSetup@@$$FQAMXXZ) で参照されました。
1>C:\local\MyApps\OpenGL\glTest02\Debug\glTest02.exe : fatal error LNK1120: 外部参照 4 が未解決です。
|
| |