1

私は 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 を返します。

4

0 に答える 0