bccでdll作成

bccでHSPのdll作成メモ †

はじめに †
http://prograpark.ninja-web.net/index.html
のHSP講座見ながらやったほうが楽です
それでも書いてない部分で ひっかかったことも多かったので
そういうのを中心に書いてみました

bccインストール †
最近、bcc5.5.1配布してないっぽい
>14歳からはじめるC++わくわくゲームプログラミング教室―Windows98/2000/Me/XP対応
の付録でbccとデバッガ配布してるのでAmazonかなんかで購入お勧め 今なら安いし
自分まだwin7なんで大丈夫なんですが
どこのwinまで対応してくれるかは謎であります
win7の人は多分大丈夫
自分もwn7にダウングレードしたPC使ってるだけだし
いまだにwin7使ってる人少ないかもしれませんが

path と bcc developer †
bccのpath通す時はフォルダ名とかの揺れに注意
Binだったりbinだったりbccだったりbcc55だったりしました
後、bcc developerないと辛いっす
リンカしてくれるのが嬉しい
初めてやった時 bcc developerインストールのやり方わかんなかったんで
コマンドプロンプトでdll作ろうとして挫折しました
ちなみに今回は2回目の挑戦ですw
http://prograpark.ninja-web.net/index.html
序 :Let's make plug-in!!
参考にしながらbcc developerとかインストールしましょう
デバッガのパスもとおしましょう

プロジェクト †
フォルダ作成してプロジェクトを作成したら
HSPSDKの中のhsp3plugin.cpp と hsp3plugin.hをプロジェクトに追加しましょう
プロジェクトに入れるだけじゃなくプロジェクトファイルを置いているフォルダにコピーしましょう
自分はよくわかんなくて hspdebug.h hspstruct.h hspvar_core.h hspwnd.h
も入れたら動きました
cppはhsp3plugin.cppだけいれればいいです
ヘッダファイルにはマクロと構造体と関数宣言が入ってて 関数本体は全然入ってなくて cpp入れなくてもコンパイル出来ました
https://wiki.hsp.moe/MakeHPI/cpp/chapter1.html
に、hsp3plugin.cppもコンパイルしてリンクしないとダメです・・・。
と書いてました

動作確認 †
https://wiki.hsp.moe/MakeHPI.html
https://github.com/vain0/prograpark-hsp/tree/master/hpi/src/msgbox
の二つ動作確認取れた所っす。現在
https://github.com/vain0/prograpark-hsp/tree/master/hpi/src/msgbox
はasファイルの拡張子をhspに変えたら動きました

メモリ管理 †
https://wiki.hsp.moe/MakeHPI/cpp/chapter2.html
>データを保持するための領域に静的変数を使うか、動的確保にするかの制限はありませ ん。
>C/C++ならmalloc()で動的割り当ても可能です。
>ただしこの場合メモリ管理はプログラマが全責任を負って行う必要があります。
http://prograpark.ninja-web.net/index.html
Home -> HSP講座 -> HPI編 No.05
>hspmalloc, hspexpand, hspfree は、関数 malloc, realloc, free とほぼ同じです。
>実装は sbAlloc, sbExpand, sbFree 関数です。
>strmul() 関数は、実装の都合上 hspfree( psResult ) としませんが、
>hspmalloc した領域はHSPの終了時に解放されるので、
>メモリリークの心配はありません (いわゆる内部リークはします)。
両方一部抜粋っす
関心のある方はURL辿ってくださいな
mallocしたメモリは解放しなきゃメモリリーク起きるってアドバイスが多いですね
hspmallocだとメモリ解放楽みたい
CにはGCもあるんですが(ググったらGC機能のライブラリが見つかると思います)
dll内でCのコード動くか謎だったり
bccなら割と簡単にC++化出来そうではありますが
自分Cやりたくてbccにしましたから
やりたいというか
C++のサンプルはC++固有のスクリプトを求められそうで 理解しきれなさそう。的なw