私は VB.NET を使用しており、System-DLL からアイコンを取得しています。したがって、私は使用しますExtractIconEx
。コメントで述べたようにDestroyIcon
、リソースを再度解放するために使用しています。
今までラインを使っていた
Private Declare Auto Function DestroyIcon Lib "user32.dll" (
ByVal hIcon As IntPtr) As Boolean
そのメソッドを宣言します。
のこの例からIcon.FromHandle
、彼らが使用していることがわかります
<System.Runtime.InteropServices.DllImportAttribute("user32.dll")> _
Private Shared Function DestroyIcon(
ByVal hIcon As IntPtr) As Boolean
End Function
違いはなんですか?
DllImportAttribute
と同じように簡単に機能しないように見えることに特に悩まされていDeclare
ます。私は次のテストを行いました:
私GetPrivateProfileString
はiniファイルから文字列を取得するために使用します。
Private Declare Auto Function GetPrivateProfileString Lib "kernel32" (
ByVal lpApplicationName As String,
ByVal lpKeyName As String,
ByVal lpDefault As String,
ByVal lpReturnedString As String,
ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
動作します。エントリをlpReturnedString
バッファに書き込み、41 を返します。
<System.Runtime.InteropServices.DllImportAttribute("kernel32.dll")> _
Private Shared Function GetPrivateProfileString(
ByVal lpApplicationName As String,
ByVal lpKeyName As String,
ByVal lpDefault As String,
ByVal lpReturnedString As String,
ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
End Function
そのままlpReturnedString
にしておきますが、正しい文字列長の 41 を返します。