CreateEventについて
下記ソースでCreateEventを実行すると例外発生してしまいます。
Structure SECURITY_ATTRIBUTES
Dim nLength As Long
Dim lpSecurityDescriptor As Long
Dim bInheritHandle As Long
End Structure
Dim stSecurityAttributes As SECURITY_ATTRIBUTES
stSecurityAttributes.nLength = Len(stSecurityAttributes)
stSecurityAttributes.bInheritHandle = 0
stSecurityAttributes.lpSecurityDescriptor = 0
Dim h As Long
h = CreateEvent(stSecurityAttributes, True, False, "ABC")
例外内容は、保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
と出ているのですが、PCに問題ありでしょうか?ソースが間違っているのでしょうか?
環境は、vb.netです。
No.1ベストアンサー
- 回答日時:
CreateEvent の Declare があやしい気がします。
Private Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByRef lpEventAttributes As SECURITY_ATTRIBUTES, ByVal ManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
でやってみましたら、正常に実行できましたよ。
この回答への補足
確かに、上記のソースだとうまくいきました。
私はCreateEventの第一引数をByValで宣言していましたが、ネットで調べてもどれもByValだったと思います。でも正解はByRefなんですかね。。
次にOpenEventでもうまくいかないのですが、それも宣言でしょうか。
OpenEvent(ByVal, ByVal, ByVal)
WaitForSingleObject(ByVal, ByVal)
SetEvent(ByVal)
上記の引数の宣言をしていますが間違っていますでしょうか。
お時間があればよろしくお願いいたします。
No.2
- 回答日時:
>私はCreateEventの第一引数をByValで宣言していましたが、ネットで調べてもどれもByValだったと思います。
そうですかね?
↓の As SECURITY_ATTRIBUTES では BtVal も ByRef もなし(ByRefと同じ) になっていますね。
http://www.winapi-database.com/File/File/CreateF …
>次にOpenEventでもうまくいかないのですが、それも宣言でしょうか。
OpenEvent の引数には構造体はないので、全て ByVal で問題ないのではないかと思いますが・・・。
CreateEvent と同様、例外が発生するのでしょうか?
それとも、例外は発生しないが、戻り値が NULL になるのでしょうか?
戻り値がNULLでした。
宣言かなとよくよく見直すと、VB.netはintegerなんですねlongを使用していました。
integerで無事動作することができました。
とてもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
サーブレットからJSPの呼び出し...
-
時間の取得
-
Timestamp型への変換について(J...
-
String型の日付(2005/11/25)の...
-
Javaで文字列をゼロ埋め(ゼロパ...
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
CreateEventについて
-
C# UriFormatExceptionの回避
-
【JAVA】与えられた金額を貨幣...
-
【JSPがブラウザで表示されませ...
-
ファイルダイアログを開いた時...
-
vb2010 Combobox にリス...
-
文字列のDateFormatへのパース
-
0除算の例外処理ができない!!...
-
配列のNullPointerException
-
VB.NETで16進数が正しいかどう...
-
javaでエラーが出ます。
-
数字か文字列かを判定する関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
時間の取得
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
数字か文字列かを判定する関数
-
String型の日付(2005/11/25)の...
-
VBA Evaluate関数 型が一致しま...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
文字列が数字のみで構成されて...
-
Timestamp型への変換について(J...
-
例外ってIf文の中に入れますか...
-
全角スペースのチェックについて
-
ファイルダイアログを開いた時...
-
C# マルチスレッドにおける例外...
-
VBA 400エラー 1004エラー
-
nullで、return出来るのはどん...
-
C#の捕捉されない例外処理の対...
-
C# UriFormatExceptionの回避
おすすめ情報