はじめまして、けんたです
SHELL32.dll,-12696
SHELL32.dll,-22914
この形はshell32.dllに含まれる
コメントだと思うのですが
このコメントを取得する方法知りたいです
どうかお願いします
# 回答に非ず。
どこからその文字列を取得して、何に使おうとしていますか?
ちなみに、"コメント"という言葉で表記されたのははじめてみました。
Resource Hackerを使ってみるとか。
http://www.angusj.com/resourcehacker/
我龍院忠太さんありがとうございます
Resource Hackerで目的の物見れました
shell32.dllをResource Hackerで開いて
String Tableと言うツリーの中にありました。
これをVBのプログラムで読み込む方法ってあるのでしょうか?
開発環境の記入などしてませんでした
VB5.0 OSはXPです。
>これをVBのプログラムで読み込む方法ってあるのでしょうか?
もちろん有るでしょうが、簡単かどうかはわかりません。
ゴリゴリやるとすれば、DLLの.rsrcセクションのツリーのノード
を辿っていくことになるでしょう。
私はと言えばリバースエンジニアリングくさいし、ちょっと食指が
動きませんが、こんなところが参考になるのかな。
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html
Win32 API関数の LoadString でどうぞ。
lidさんありがとうございます。
LoadString にて出来ました!!
>我龍院忠太さん
参考URLなどありがとうございました。
詳しくみていないですけど勉強になりそうなページですので
見て勉強したいと思います。
>K.J.K.さん
言葉が足りなくどうもすみませんでした <(_ _)>
以下、テストで作成したプログラムです。
'----------------------------------------
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long
'-----------------------------------------
Private Sub Command1_Click()
Dim StrBuf As String
Dim hInst As Long
StrBuf = Space(256)
hInst = GetModuleHandle("C:\WINDOWS\system32\shell32.dll")
Call LoadString(hInst, 12696, StrBuf, Len(StrBuf))
If InStr(StrBuf, vbNullChar) > 0 Then
StrBuf = Left$(StrBuf, InStr(StrBuf, vbNullChar) - 1)
End If
Debug.Print StrBuf
End Sub
### 解決ですぅO(≧▽≦)O
自己レス
LoadString 用で、dllから hInstance を求めるのに、
GetModuleHandleで記入しましたが・・・
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
hInst = LoadLibrary("C:\WINDOWS\system32\shell32.dll")
が、正解でした。(^_^;)
んー…
LoadLibraryEx("hoge.dll",0,LOAD_LIBRARY_AS_DATAFILE Or DONT_RESOLVE_DLL_REFERENCES)
でもいいかも。
ツイート | ![]() |