タイトル : Re: VB起動OKもEXE起動NG 投稿日 : 2010/03/29(Mon) 15:16 投稿者 : 魔界の仮面弁士
開発環境で動いていたものが、EXE で動作が異なってしまうような 場合には、ネイティブ コード コンパイルから P-Code コンパイルに 変更することで解決する事が多いようです。 http://support.microsoft.com/kb/229415/ja http://salvw.miscnotes.com/index.php/archives/category/_vb/pcodeandnativecode ただし今回のように、API 使用時に動作が異なってしまった場合というのは、 API 関数の宣言や呼び出し方など、元のソースに問題があると見たほうが良いでしょう。 > '自メールスロットの生成 > Ene_MsHandle = CreateMailslot(ENE_MS_DATAMAN, ENE_MAX_RCVBUF, _ > ENE_RCV_TIMEOUT, Null) 第 4 引数に Null を指定してはいけません。 ここに指定するべきは、『SECURITY_ATTRIBUTES 構造体への参照』です。 もしも第 4 引数を、Declare 時に「ByRef As Any」または「ByVal As Long」で 宣言しているのであれば、呼び出し時には「ByVal 0&」と指定してみてください。 あるいは、「ByRef As SECURITY_ATTRIBUTES」と宣言している場合には、 第 4 引数には、「SECURITY_ATTRIBUTES 型の変数」を渡す必要があります。 > ENE_RCV_TIMEOUT, Null) 「C 言語の NULL」と、「Visual Basic の Null」を混同しないようにしてください。 http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200504/05040116.txt VB の Null とは Variant 型専用の値であり、API で使用されることはまずありません。 OLE 関係の API で利用されることはありますけれども。 > vbInformation + vbOKOnly, Me.Caption ビットフラグとなる定数は、「+ 演算子」ではなく「Or 演算子」で連結しましょう。 |