タイトル : Re^4: DLLへの文字列ポインタについて 投稿日 : 2008/05/19(Mon) 21:40 投稿者 : cc
教えていただいた内容を 確認してみました。 事前実験で、 私もVBのStringを、DLLでchar *として扱う方法で 渡ってたので良いのかと思いました。 ただ、DLL側でデバッグし、 VB側から送った文字列の先頭アドレスを見ると、 Unicodeではなく、ANSI文字列が入っていました。 と言うことは、BSTRではなく、char *として扱ってもよいのかと考えていました。 Q1.自動的にUnicode→ANSIされるのでしょうか? Q2.DLLの変更は避けたいのです。 となると、 Type STRCT ldat_A As Long ' データA lptr As Long ' ファイル名 ldat_B As Long ' データB End Type とし、 Dim strct_d As STRCT strct_d.ldat_A = 5 ' データA StrPtr(StrConv("test.txt", vbFromUnicode)) ' ファイル名 strct_d.ldat_B = 6 ' データB ret = DllFunc(strct_d) の様に処理するのはNGなのでしょうか? アドバイス頂けないでしょうか? よろしくお願いします。 |