关于声明api函数的问题,新手
vb.net吧
全部回复
仅看楼主
level 2
Declare Auto Function Icon_Num Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As Integer ) As Integer
用这段代码声明Extractlcon函数,为什么是错误的,这个提示
2016年06月08日 11点06分 1
level 2

2016年06月08日 11点06分 2
level 9
把声明放到过程的外面。
2016年06月08日 13点06分 3
level 11
放在外面(我习惯放在Class里代码最前面)。这个被看做一个独立的Sub,是不许放在Sub或者Function里的。
2016年06月08日 14点06分 4
level 13
声明位置必须是模块级别。
内容也是错的。这是
正确的
声明:
Declare Function ExtractIconW Lib "Shell32.dll" (hMod As HandleRef, exeName As String, index As Integer) As IntPtr
---贴吧极速版 For UWP
2016年06月09日 14点06分 5
level 13
最准确的声明:
Declare Function ExtractIcon Lib "Shell32.dll" Alias "ExtractIconW" (hMod As HandleRef, exeName As String, index As Integer) As IntPtr
注意,如果你打算直接传指针作为第一个参数而不想保持相关托管对象不被垃圾回收器析构,把HandleRef换成IntPtr。
---贴吧极速版 For UWP
2016年06月09日 14点06分 6
1