ActiveBasic 4.23.00 を使用しています。
今回、ファイルの暗号化ソフトを作成しようと思い、手段を考えていたところ、ON ERROR RESUME NEXT様のリソースの追加/読み込みの項目を見つけ、
これでやってみようと作成を始めました。
Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (pFileName As BytePtr,bDeleteExistingResources As Long) As Long
Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (hUpdate As Long,lpType As BytePtr,lpName As BytePtr,wLanguage As Long,lpData As VoidPtr,cbData As Long) As Long
Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (hUpdate As Long,fDiscard As Long) As Long
'定数
Const RT_MANIFESTID=1
Const RT_MANIFEST="BINTYPE"
Sub MainWnd_CommandButton1_Click()
Dim IsUpdate As Long
Dim Update As Long
Dim temp As String
'EditBoxをチェック
Dim Ed1 As Long
Dim Ed2 As Long
Dim buf1 As BytePtr
Dim buf2 As BytePtr
Ed1=GetWindowTextLength(GetDlgItem(hMainWnd,EditBox1))
Ed2=GetWindowTextLength(GetDlgItem(hMainWnd,EditBox2))
If Ed1=0 Then
MessageBox(hMainWnd,"埋め込み用物質が選択されていません","Error 1",MB_OK or MB_ICONHAND)
Exit Sub
End If
If Ed2=0 Then
MessageBox(hMainWnd,"埋め込み先物質が選択されていません","Error 2",MB_OK or MB_ICONHAND)
Exit Sub
End If
buf1=malloc(Ed1+1)
buf2=malloc(Ed2+1)
GetDlgItemText(hMainWnd,EditBox1,buf1,Ed1)
GetDlgItemText(hMainWnd,EditBox2,buf2,Ed2)
temp=MakeStr(buf2)
IsUpdate=BeginUpdateResource(buf1,TRUE)'FileName はターゲットファイルのフルパス。Ex:"C:\test.exe" にリソースを埋め込む場合、FileName="C:\test.exe"
If IsUpdate=0 Then'エラー
free(buf1)
free(buf2)
MessageBox(hMainWnd,"リソースの埋め込み先に異常あり","Error 3",MB_OK or MB_ICONHAND)
Exit Sub
EndIf
Update=UpdateResource(IsUpdate,RT_MANIFEST,RT_MANIFESTID,MAKELANGID(LANG_JAPANESE,SUBLANG_SYS_DEFAULT),temp,Len(temp))
If Update=0 Then'エラー
EndUpdateResource(IsUpdate,TRUE)
free(buf1)
free(buf2)
MessageBox(hMainWnd,"リソースの埋め込み時に異常事態発生","Error 4",MB_OK or MB_ICONHAND)
Exit Sub
End If
EndUpdateResource(IsUpdate,FALSE)
free(buf1)
free(buf2)
MessageBox(hMainWnd,"たぶんエラーなく書き込みを完了しました。","Success!!",MB_OK or MB_ICONINFORMATION)
End Sub
このように書いてみたのですが、IsUpdate=0でいつもエラーが返ってきます。
何故かが分かりません。
すみませんが、ご存知の方がいらっしゃいましたら、ご教授の方をお願いします。
No.1ベストアンサー
- 回答日時:
buf1に読み込んだファイル名が完全でないのではありませんか?
BytePtr型へ読み込まずにString型へ読み込んだほうがいいかもしれませんよ
dim ss as String
GetDlgItemText( hMainWnd, EditBox1, ss, 256 )
といった具合で
APIに渡すときも String型ならそのままでいいようです
IsUpdate = BeginUpdateResource( ss, TRUE )
といった具合で
どうしても BytePtr型がいいのであれば
GetDlgItemText( hMainWnd, EditBox1, buf1, Ed+1 )
として 文字列の終端記号のNull文字の分まで読み込むようにしましょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
Excel ファイルに保存すると実...
-
FileSystemObjectのオーバーフロー
-
bcpadがうまく実行できないので...
-
Office Component Suite
-
実行時エラー'1004': アプリケ...
-
LTspiceのTime Stepエラーについて
-
vbaでファイルを開くパス名に変...
-
ASP.NETでのランタイムエラー?...
-
W3CのCSS検証エラーについて
-
PowerPoint(.pptx)ファイルをPD...
-
VBAで印刷するとエラーになって...
-
ACCESS VBAのOpenForm書き方
-
エラーコード 70 「書き込み...
-
バッチファイルで発生するエラ...
-
NET USE コマンドでエ...
-
図形のクリアができない。
-
シェルスクリプトの実行エラー...
-
PCが故障しました。。。【Inpag...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Debug Assertion Failed?
-
VBAでFormat がうまく使えない
-
NET USE コマンドでエ...
-
エラーコード 70 「書き込み...
-
vbaでファイルを開くパス名に変...
-
Excel ファイルに保存すると実...
-
ACCESS VBAのOpenForm書き方
-
シェルスクリプトの実行エラー...
-
Web.Config 構成ファイルのエラー
-
C# HttpWebRequestのエラーにつ...
-
VBAで印刷するとエラーになって...
-
不明なソフトウェア例外(0xe06...
-
ホームページビルダーの”全体の...
-
EXCELを開くとエラーがでます。
-
Subversionのリポジトリでが壊...
-
POV-Ray についての質問です!
-
WNetAddConnection*()の使い方
-
【ASP】500エラーが発生する【A...
-
Access ADOで文字列を日付型へi...
-
PowerPoint(.pptx)ファイルをPD...
おすすめ情報