check さん、たぶん 「DLL を作りたいけど、どーやって作るんだ?」って話かと。
まぁ、回答は、hsp に同梱されている hspsdk ってのを見れば一発なんだけどね。
"hsp\\hspsdk\\hpi3sample\\main.cpp" のがHSPプラグインとHSP2.6 $202 方式の説明。
HSP から DLL を呼び出す時に、user32.as に書かれている方法で呼び出すなら、普通に DLL 側の受け取り引数を HSP の型にあわせればいいと思うよ。
;サンプル
#uselib "hspdll.dll"
#func DLLTEST "DLLTEST" var //←のDLL側名は、コンパイラによって装飾名が付与されるので、正確には DLL をバイナリエディタなどで見てから設定するように。
なら、DLL 側は、
EXPORT BOOL WINAPI DLLTEST ( char *p1 ){
//sprintf_s p1,p2,p3 :: p1 = 書き換えしようとしている変数 / p2 = 変数のサイズ / p3 = 書き換え内容そのもの
sprintf_s(p1,64,"書き換えました。") //マルチバイト文字セット
//sprintf_s(p1,64,L"書き換えました。") //Unicode 文字セット
return 0;
}
上記で、HSPの文字列変数の内容を書き換えできるはず。
もし、Microsoft VisualC++ で、DLL を作る環境である場合で文字セットを変更していないのであれば、上記のソースの Unicode 文字セットみたいに、文字列指定する際の先頭に L をつけてください。
そうしないと、コンパイルエラーになります。また L をつけないで HSP みたいにしたいなら最初からプロジェクトの設定で、マルチバイト文字セットに変更してください。
(上記ソースは、文字セットを マルチバイト文字セットに書き換えた状態で説明しています。)
また、希望にあった処理は一切していません。HSP から受け取った変数の処理は、DLL 側(C++)なので、この掲示板では答えは出ませんのであしからず。