トップページ > 記事閲覧
ULONG_PTRの定義について
名前:nsawa 日時: 2023/01/27 19:13

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の標準ヘッダファイルでの定義の型に合わせて頂く事は可能でしょうか? ご検討よろしくお願いします。
メンテ

Page: 1 |

Re: ULONG_PTRの定義について ( No.1 )
名前:管理人 日時:2023/01/28 01:11

ご指摘ありがとうございます ULONG_PTR の定義を DxDataTypeWin.h から削除しましたので、 よろしければお使いください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: ULONG_PTRの定義について ( No.2 )
名前:nsawa(解決) 日時:2023/01/28 23:46

ご対応いただき、ありがとうございました。 コンパイルエラーが出なくなりました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存