DxLib_VC3_24.zipから最新のDxLibVCTest.zipへの変更で、DxDataTypeWin.hにULONG_PTRの定義が追加されていますが、定義の型がWindowsの標準ヘッダファイルでの定義と異なっています。
具体的には、「#define ULONG_PTR unsigned int」と「typedef unsigned long ULONG_PTR」という違いがあるようです。
そのため、以下のようなプログラムにおいて、DxLib_VC3_24.zipではコンパイルエラーが発生しないが、DxLibVCTest.zipではコンパイルエラーが発生するという問題が生じました。
//Visual Studio Community 2022、Debug、x86でビルド
#include <windows.h>
#include <gdiplus.h>
#include "DxLib.h"
ULONG_PTR Token;
Gdiplus::GdiplusStartupInput Input;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
Gdiplus::GdiplusStartup(&Token, &Input, NULL); //ここでGDI+のAPIを呼んでいる事に意味はなく、コンパイルエラーを確認するためだけです。(ULONG_PTR*)を引数に取るAPIなら何でも構いません。
if(DxLib_Init() == -1) { return -1; }
DrawPixel(320, 240, GetColor(255, 255, 255));
WaitKey();
DxLib_End();
return 0;
}
//■結果
//・DxLib_VC3_24.zipではコンパイルエラーが発生しない。
//・DxLibVCTest.zipでは以下のコンパイルエラーが発生する。
// error C2664: 'Gdiplus::Status Gdiplus::GdiplusStartup(ULONG_PTR *,const Gdiplus::GdiplusStartupInput *,Gdiplus::GdiplusStartupOutput *)': 引数 1 を 'unsigned int *' から 'ULONG_PTR *' へ変換できません。
DxDataTypeWin.hからULONG_PTRの定義を削除するか、又は、Windowsの標準ヘッダファイルでの定義の型に合わせて頂く事は可能でしょうか?
ご検討よろしくお願いします。