MinGW32 には D3DX ないんだね(´・ω・`)
D3DMATRIX の中身を見ようかと思って D3DXMatrixIdentity 使おうとしたわけ。
#include <stdio.h> #include <d3d9.h> void printMatrix(const D3DMATRIX& m); int main() { D3DMATRIX mat; D3DXMatrixIdentity( &mat ); printMatrix( mat ); } void printMatrix(const D3DMATRIX& m) { printf( "[\n" ); printf( " [%f, %f, %f, %f]\n", m._11, m._12, m._13, m._14 ); printf( " [%f, %f, %f, %f]\n", m._21, m._22, m._23, m._24 ); printf( " [%f, %f, %f, %f]\n", m._31, m._32, m._33, m._34 ); printf( " [%f, %f, %f, %f]\n", m._41, m._42, m._43, m._44 ); printf( "]\n" ); }
そしたらさ:
g++ -O2 -Wall -W -march=pentium4 -s -c testD3Matrix.cpp -o Debug/testD3Matrix.o testD3Matrix.cpp: In function 'int main()': testD3Matrix.cpp:11: error: 'D3DXMatrixIdentity' was not declared in this scope make: *** [Debug/testD3Matrix.o] Error 1
うすうすどころか予想もしてなかったんだけどさ、リファレンス[msdn.microsoft.com] みたらさ、
D3DMATRIX は D3D にあって、それのクラス版の D3DXMATRIX とか D3DXMatrixIdentity は D3DX の中に入ってるんだよね(´・ω・`)ショボーン
でも、D3DXMatrixIdentity が入ってると思われる d3dx9.lib は同名の d3dx.dll を呼びだす糊みたいなものなわけだ。
dll があれば怖くないよね。
MinGW FAQ @ MSVC のプログラムから MinGW DLL を呼び出すことや、その逆は可能ですか?[www.sixnine.net]
を見ると:
- pexports $(target_dir)/$(target_name).dll | sed "s/^_//" > $(target_name).def
- dlltool -U -d $(target_name).def -l $(target_name).a
- キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
で、できるらしい。
んじゃ、早速やってみる。
またな!(やっくん的な意味で)