銅子OM
JO1SIMでしまです。
浜田OMのフォローが、まさにそのことでした。
浜田OM> #define WINAPI __stdcall だったような。。。
ただ、動的によびだしたとしても、この辺のキャストを誤ると動かないはずではあったと思いますが。(謎)
失礼しました。
> > C++系はポインターを自由に使えるので便利なんですが。バグも出やすいのですね。DLLの動的リンクとかの手法で何とか動きそうなのですが、何かスマートでない気がするのと、何か問題がありそうで気分が良くないのですね。
>
> Hamlog50.dllは昔ながらのShift-JISで、VC++はUnicode という違いが
> あるかと思いますが、その辺の型の宣言やキャストをうっかりすると、
> バグってしまうかと思います。
> まぁ、それは十分にご承知のことと思いますが。
>
> 動的リンクならOKということは、インポートLIBに問題ありでしょうか。
> なお、関数の型は、__cdeclではなく__stdcallで宣言してます。
> 確か、Borland C++では、
> #define WINAPI __stdcall だったような。。。
>
> スタックに渡す順序が逆になるのでしょうね。
>
> ちなみに、私の場合、VC++は大昔のVC++ 5.0使ってます。Hi
>
> こんな宣言になってますが。。。Borland C++ 5.0
> int WINAPI __export HamlogOpen(
> int WINAPI (* func)(char *), // NULLでOK
> TThLog *,
> const char *, // HAMLOG.MST
> const int)