Re: DXライブラリを64bitにする! ( No.1 ) |
- 名前:管理人 日時:2012/03/04 20:41
他に優先したいことがあるので正式な64bit対応の作業はかなり先になりそうです
申し訳ありません
|
Re: DXライブラリを64bitにする! ( No.2 ) |
- 名前:sy(サイ) 日時:2012/03/09 20:27
面倒なことが多かったので一時休止してましたが、復活。
win32マクロを再定義である程度エラーに対応。
#if defined(_WIN32)
#if defined(_WIN64)
// redefine macro for x64
#undef SetWindowLong
#undef GWL_WNDPROC
#undef GetWindowLong
//#undef GWL_WNDPROC
#undef SetClassLong
#undef GetWindowLong
#undef GCL_WNDPROC
#undef GWL_HINSTANCE
#undef GWL_HWDPARENT
#undef GWL_USERDATA
#undef GCL_MENUNAME
#undef GCL_HBRBACKGROUND
#undef GCL_HCURSOR
#undef GCL_HICON
#undef GCL_HMODULE
#undef GCL_WNDPROC
#undef GCL_HICONSM
#define SetWindowLong SetWindowLongPtr
#define GWL_WNDPROC GWLP_WNDPROC
#define GetWindowLong GetWindowLongPtr
//#define GWL_WNDPROC GWLP_WNDPROC
#define SetClassLong SetClassLongPtr
#define GetWindowLong GetWindowLongPtr
#define GCL_WNDPROC GCLP_WNDPROC
#define GWL_HINSTANCE GWLP_HINSTANCE
#define GWL_HWDPARENT GWLP_HWNDPARENT
#define GWL_USERDATA GWLP_USERDATA
#define GCL_MENUNAME GCLP_MENUNAME
#define GCL_HBRBACKGROUND GCLP_HBRBACKGROUND
#define GCL_HCURSOR GCLP_HCURSOR
#define GCL_HICON GCLP_HICON
#define GCL_HMODULE GCLP_HMODULE
#define GCL_WNDPROC GCLP_WNDPROC
#define GCL_HICONSM GCLP_HICONSM
#define DX_NON_INLINE_ASM
#else
#endif
#endif
マイクロソフトのサポート
http://msdn.microsoft.com/en-us/library/bb427430(v=vs.85).aspx
|
Re: DXライブラリを64bitにする! ( No.3 ) |
- 名前:sy(サイ) 日時:2012/03/09 20:37
WNDPROCに変換できない問題。long になってたためにエラーになっていました。windowsの定義を使って対応。
#if defined(_WIN32)
#if defined(_WIN64)
extern LRESULT FAR PASCAL WinSockWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) ; // WinSock専用のウインドウのメッセージコールバック関数
#else
extern long FAR PASCAL WinSockWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) ; // WinSock専用のウインドウのメッセージコールバック関数
#endif
#endif
#if defined(_WIN32)
#if defined(_WIN64)
static LRESULT FAR PASCAL DxLib_WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) ; // メインウインドウのメッセージコールバック関数
#else
static long FAR PASCAL DxLib_WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) ; // メインウインドウのメッセージコールバック関数
#endif
#endif
定義部も変えてください。
|
Re: DXライブラリを64bitにする! ( No.4 ) |
- 名前:sy(サイ) 日時:2012/03/09 20:44
もうひとつの箇所も修正。DxGraphics2.cpp
#if defined(_WIN32)
#if defined(_WIN64)
static VOID CALLBACK ScreenFlipTimerProc( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime ); // テンポラリプライマリバッファの内容をプライマリバッファに転送するコールバック関数
#else
static VOID CALLBACK ScreenFlipTimerProc( HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime ); // テンポラリプライマリバッファの内容をプライマリバッファに転送するコールバック関数
#endif
#endif
|
Re: DXライブラリを64bitにする! ( No.5 ) |
- 名前:sy(サイ) 日時:2012/03/09 20:47
ここで、DxUseCLib.libがx86だと怒られました。
そちらの修正へ移りたいです。こちらのソースコードは公開されますか?
もし出来るなら64bit化のお手伝いが出来ると思いますがどうでしょうか?
|
Re: DXライブラリを64bitにする! ( No.6 ) |
- 名前:sy(サイ) 日時:2012/03/09 21:50
あ、すいません、ありましたね。続けます。
|
Re: DXライブラリを64bitにする! ( No.7 ) |
- 名前:sy(サイ) 日時:2012/03/09 22:52
経過。
プロジェクトを作成中。
ttp://libpng.sourceforge.net/index.html
ここの[DOWNLOAD]から入りDownload lpng159.7z (497.2 kB)リンクからpngプロジェクト一式を入手。
|
Re: DXライブラリを64bitにする! ( No.8 ) |
- 名前:sy(サイ) 日時:2012/03/09 23:19
http://www.ijg.org/files/
jpegプロジェクト導入。しかし問題発生。
C2371: 'INT32' : redefinition; different basic types
win64 SDK内の定義とかぶった。 これはめんどそう。。
追記
jpegsrc.v6b.tar.gzは古いプロジェクトだったのでjpegsrc.v8d.tar.gzに変更。
上記のエラーがなくなりました。
更に追記
1>まいどきゅめんと\visual studio 2010\projects\dxuseclib\dxuseclib\jpeg-8d\jmorecfg.h(236): error C2371: 'boolean' : redefinition; different basic types
今度はwin64 SDKのRpcNdr.h内のbooleanが被りました。うーん、面倒だ。。
誰か、64bitのjpegライブラリを作ってないのかと思うが。。
HAVE_BOOLEANを定義することに。
|
Re: DXライブラリを64bitにする! ( No.9 ) |
- 名前:sy(サイ) 日時:2012/03/10 21:12
いろいろパスと押してもエラーが残る。
DxUseCLib.cpp
以下の二つのファイルに含まれる型定義が足りなかったので、png.hのすぐ下に2行追加。
#include "pngstruct.h"
#include "pnginfo.h"
とりあえずエラーは消えて、64bit静的ライブラリの作成に成功。
たくさんのunsafe警告が出てるのがとても気になるのでそこの修正へ・・・。
無視してもよさげな警告をシャットアウト
#pragma warning(disable:4996)
#pragma warning(disable:4290)
|