我想在对话框程序中使用自动完成,就加了以下代码:
#include "Shlwapi.h"
在OnInitDialog()加了:
 CoInitialize( NULL );
if(SHAutoComplete(GetDlgItem(IDC_FILE_PATH)->GetSafeHwnd(),
SHACF_DEFAULT)!=S_OK)return FALSE;
结果编译的时候出现了:
 error C2065: “SHACF_DEFAULT” : 未声明的标识符
error C3861: “SHAutoComplete”: 即使使用参数相关的查找,也未找到标识符
错误!晕~~MSDN明明说是在Shlwapi.h中的,可是怎么又不能编译啊??
我的程序中还用了SHFileOperation()怎么这个又没问题
请高手指教~~~~~~~~~~小弟感激不尽~~(我是在vs.net 2003下做的)

解决方案 »

  1.   

    确定包含了Shlwapi.h!  IDE包含了对应目录
    进Shlwapi.h看看是否有HAutoComplete的定义要是有就看看是否有OS版本的限制??           >0X05000这样的?
      

  2.   

    SHFileOperation
    Requirements 
      Version 4.00 and later of Shell32.dll  Windows NT/2000: Requires Windows NT 4.0 or later. 
      Windows 95/98: Requires Windows 95 or later. 
      Header: Declared in shellapi.h. 
      Import Library: shell32.lib.SHAutoComplete
    Requirements 
      Version 5.00 and later of Shlwapi.dll  Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with Internet Explorer 5.0 or later). 
      Windows 95/98: Requires Windows 98 (or Windows 95 with Internet Explorer 5.0 or later). 
      Header: Declared in shlwapi.h. 
      Import Library: shlwapi.lib.从两个函数要求来看,它们并不在同一个头文件中申明。而且SHAutoComplete要求的动态库版本是5.0。你不妨看看你机器上Shlwapi.dll文件的版本号
      

  3.   

    我的是WINXP SP2的。。估计不存在版本问题。我记得以前也出过类似是的问题的,明明有声明,它却提示错误。可惜我没继续下去,而这次是个实验,要上交的,没办法。
      

  4.   

    _WIN32_IE >= 0x0500#define _WIN32_IE 0x500
    #include "Shlwapi.h"
      

  5.   

    T_T 谢谢孤鹰啊!!!!!!!终于成功了!!偶也觉得define问题~可是就是不知道是IE,上次用动画窗口也是这样~还好网上有例子了。