[過去ログ] SDLスレ (987レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
523
(3): 名前は開発中のものです。 [sage] 04/08/25 21:13 ID:EcBBkrxH(1) AAS
BCCでライブラリをmakeしようとしたのですが、
エラー E2342 ..\..\src\video\windib\sdl_dibevents.c
189: パラメータ 'lpPrevWndFunc' は int (__stdcall *)() 型として定義されているので
long (__stdcall *)(void *,unsigned int,unsigned int,long) は渡せない
(関数 DIB_HandleMessage )とかいうエラーメッセージを吐いて出来ませんでした。
とりあえず該当箇所のソースを見て自分で直そうとしたのですが、見てみても
それらしき記述が発見できず…。

誰かどこを直せばいいかアドバイスお願いします。

一応環境は
Win98
BCC5.5.1
SDLのバージョンは安定版の1.2.7です。
524: 521 [sage] 04/08/26 00:18 ID:bQrcHUhr(1) AAS
>>522
522(1): 名前は開発中のものです。 [sage] 04/08/23 23:37 ID:vOt8qlrp(1) AAS
>>521
全く同じ環境だったから SDL_kanji_f1b 落としてきて試してみたんだが、普通に動くな……。
デバッガで追っかけて、具体的に何がバイオレーションを起こしてるのか探ってみるといいかも。

screen は kanji_PutText とかでも使ってるし text は kanji_CreateSurface 内でエラーチェックがあるから、
少なくともポインタが NULL になることはなさそうなんだがなあ。
わざわざ試してくれてサンクス。
デバッガで追ってみたけどkanji_CreateSurfaceも成功してて、
SDL_BlitSurfaceの中まで行ったけどアセンブラばっかりで
よく分からなかったよ・・・。

日本語表示には別の方法考えるか・・・。

>>523
BCCは使ってないのでワカランのだが、
VC6用のバイナリ一式をimplibでBCC用に書き換える
っていうのじゃダメなん?
525
(2): 名前は開発中のものです。 [sage] 04/08/26 01:04 ID:c70JkN3E(1/3) AAS
>>523
適当に環境構築して試してみた。おれの環境は Win2k なんだが、
それ以外は一緒だから多分参考になると思う。Win2k + BCC5.5.1 + SDL-1.2.7 。

お前さんの言うエラーの lpPrevWndFunc は、CallWindowProc の第一引数の仮引数名だ。
そのエラーは winuser.h 内の Call〜 の定義のせいで出てる。で STRICT つーマクロを定義しとけば大丈夫。
つまり、Borland\freebcc\SDL.mak の 66 行目(辺り)の、
USERDEFINES = WIN32;BUILD_SDL;__FREEBCC__; ...
ってなってるその行の最後に「STRICT;」って書き足せばオッケーだ。

本当はその次の行にある SYSTDEFINES から NO_STRICT を消す必要があると思うんだが、
なんでか残したままでも問題なかったな。

で実はこれをクリアしても他にも問題が出てきた。それも適当に対処できたから次に続く。
526
(1): 525 の続き [sage] 04/08/26 01:23 ID:c70JkN3E(2/3) AAS
そのままビルドするとコンパイルは通るんだがリンクの段になって
「Error: 外部シンボル '_SDL_HasMMX' が未解決(.\SDL-1.2.7\SRC\VIDEO\SDL_BLITN.OBJ が参照)」
みたいなエラーが来る。これは SDL_cpuinfo.c に定義されてるんだが、
SDL_cpuinfo.c のコンパイルが makefile にまるで書いてないのが原因。

なので、Borland\freebcc\SDL.mak の 70 行目(辺り)の
PATHCPP = .;..\..\src; ...(以下略)
ってなってる行の最後に「;..\..\src\cpuinfo」を追加して、
後 50 行目(辺り)の
  ..\..\src\video\SDL_blit.obj
に書き足して、
  ..\..\src\video\SDL_blit.obj ..\..\src\cpuinfo\SDL_cpuinfo.obj
にすればビルドできる。SDL-1.2.7\test\ に SDL.dll と SDL.lib が出来てるはず。

本当は SDLmain.mak にも間違いがあってビルドできんのだけど、
>>523 の implib で解決するんならそっちでやってくれい。

……ああ、やっぱり長文になってもうた。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s