vista 64位下右键菜单取不到选中的文件名
我是在.net 中调用的
声明
[DllImport("shell32")]
//internal static extern uint DragQueryFile(uint hDrop, uint iFile, StringBuilder buffer, int cch);
internal static extern uint DragQueryFile(UIntPtr hDrop, uint iFile, StringBuilder buffer, int cch);
调用
nselected = Helpers.DragQueryFile(m_hDrop, 0xFFFFFFFF, null, 0);在32位的环境中能成功取得选中文件的个数,但是在64位的vista中nselected始终为0,也不报错,这是什么原因?
我是在.net 中调用的
声明
[DllImport("shell32")]
//internal static extern uint DragQueryFile(uint hDrop, uint iFile, StringBuilder buffer, int cch);
internal static extern uint DragQueryFile(UIntPtr hDrop, uint iFile, StringBuilder buffer, int cch);
调用
nselected = Helpers.DragQueryFile(m_hDrop, 0xFFFFFFFF, null, 0);在32位的环境中能成功取得选中文件的个数,但是在64位的vista中nselected始终为0,也不报错,这是什么原因?
你的声明: internal static extern uint DragQueryFile(UIntPtr hDrop, uint iFile, StringBuilder buffer, int cch);
你确信DragQueryFile函数有UIntPtr类型的参数???原型:
UINT DragQueryFile(HDROP hDrop,
UINT iFile,
LPTSTR lpszFile,
UINT cch
);我是这样用的,在64位vista下没有问题出现啊。
UINT32 nDropNum = DragQueryFile((HDROP)hDrop, 0xFFFFFFFF, NULL, 0);注:我 没有 在.net 中调用的