忍者ブログ

銀朱工房

クッソ初心者がダンジョンRPGを作成する パソコンって何ですかって人が頑張ってダンジョンRPGを作ったローという感じ クソゲーが出来上がる過程を報告って感じですね やった内容は右のカテゴリーから参照お願いいたします。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

libmsimg32をMingwで使うには

libmsimg32をリンクするのにデフォルトでは出来ないので
メモッておきます。

dllからインポートライブラリを作成する
libmsimg32.dllからlibmsimg32.aを作れば良い

やり方:
pexportsコマンドでXXX.defを作って
dlltoolに食わせてやればいけるよ

C:\Users\XXXXX\WORK\RPG_work\Source>pexports msimg32.dll > msimg32.def
C:\Users\XXXXX\WORK\RPG_work\Source>dlltool --dllname msimg32.dll --input-def msimg32.def --output-lib libmsimg32.a

msimg32.dllは、ダウンロードするなりして
自分の作業環境に適応しているものを用意する

pexports.exeは、mingw-utils-0.3をダウンロードしてきて/binの中にあるっす
できあがった libmsimg32.aをmingw/lib/にいれてやればいける!

↓実行結果
C:\Users\XXXXX\WORK\RPG_work\Source>gcc window4.c -lgdi32 -lmsimg32
うむ、コンパイルエラーなし

objdumpは・・と
C:\Users\matsuken\WORK\RPG_work\Source>objdump -p a.exe | find "DLL"
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: GDI32.dll
    DLL Name: KERNEL32.dll
    DLL Name: msimg32.dll
    DLL Name: msvcrt.dll
    DLL Name: USER32.dll

完璧!!msimg32.dllがおったよ

拍手[0回]

PR

ビットマップ操作 背景の透過3

キャラ + 背景

をTransparentBlt()関数を使って合成してみる



できました。

次はパーティーメンバーとモンスターを並べてみます。

拍手[0回]

ビットマップ操作 背景の透過2

TransparentBlt()関数は
msimg32.libのリンクしないといけないといけないっぽいが
/libの中覗いてみるとlibmsimg32.aがあるね
コンパイル時にリンクしてみますか
C:\Users\XXXXXX\WORK\RPG_work\Source>gcc window4.c -lgdi32 -lmsimg32
C:\Users\XXXXXX\AppData\Local\Temp\ccyz5fhu.o:window4.c:(.text+0x267): undefined reference to `TransparentBlt'
collect2: ld はステータス 1 で終了しました

・・・ありゃりゃ
おっかしーな、確かに -lmsimg32してるのに

よっしゃ、TransparentBlt使わないコードをコンパイルして
objdump -pしてみっか

C:\Users\XXXXX\WORK\RPG_work\Source>gcc window3.c -lgdi32 -lmsimg32

うむ、コンパイルエラーは無いね
次、objdump

C:\Users\XXXXX\WORK\RPG_work\Source>objdump -p a.exe | find "DLL"
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: GDI32.dll
    DLL Name: KERNEL32.dll
    DLL Name: msvcrt.dll
    DLL Name: USER32.dll

あれ?・・・ないね
ドナイショーーー

Google大先生に聞いてみる
 ・
 ・
 ・
あっれー大先生も知らないみたいね
これは、こまったでごわす

色々検索していたらなんか、使えそうなもの発見したっす

dllからインポートライブラリを作成する方法だそうな
そっかー、dllからlibmsimg32.a作ってやればよくね?
って思ったので、やってみた。

結論からいくと
ばっちしいけた

拍手[1回]

ビットマップ操作 背景の透過

ビットマップ表示できたので
次はキャラを重ねていきます。
背景色の透過をするには、TransparentBlt()関数を使えばいけるようです

拍手[0回]

プロフィール

HN:
ンメローン
性別:
男性
職業:
なんちゃってソフト屋さん
趣味:
いろいろある多趣味である
自己紹介:
寝るのが大好きなキモオタです。
しいていうなら、
ただの通りすがりのメロンみたいなものですよ

カレンダー

08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

ブログ内検索

フリーエリア

最新CM

[08/30 imitazione cartier anelli oro donna]
[02/17 kos3xnqd9v3]
[02/16 uem4paid3j2]

バーコード

コガネモチ

P R

ページ