> 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)