DXライブラリとCOMを併用すると、
DxLib_End()でアクセス違反が起きることを確認しました。
コメントアウトで抽出していくと、どうやら
::CoUninitialize()を実行するとDxLib_End()内でアクセス違反が起きるようです。
以下再現する最小のソースになります。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( true );
if(DxLib_Init()==-1||SetDrawScreen(DX_SCREEN_BACK)!=0) return -1;
::CoInitialize( NULL );
Sleep(1000);
::CoUninitialize();
DxLib_End();
exit(0);
return 0;
}
ttp://illucalab.com/temp/comtest.zip
ちなみに、所持しているWin7機とXP機で挙動が違います。
Win7機ではアクセス違反ではなく、ウィンドウが閉じなくなります(移動も出来ません)。
XP機ではアクセス違反が発生し、強制終了します。
その他、Visual Studioのバージョンは2008です。
何か原因など分かりませんでしょうか。
宜しくお願いします。