tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 演算子」で連結しましょう。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。