`

VC++错误:error C2065: 'SHCreateDirectoryEx' : undeclared identifier

 
阅读更多

1。介绍
SHCreateDirectoryEx是window flatform下建立文件夹的函数,他的功能比CreateDirectory(Ex)大。如果创建文件夹目录有的中间目录不存在,SHCreateDirectoryEx可以建立,而CreateDirectory(Ex)则做不到这一点。
2。使用方法
要想使用SHCreateDirectoryEx,必须先安装windows2000 floatform SDK,或者从已经安装的些开发包的系统中,把需要的文件考过来,这样比较麻烦,所以还要去微软的网站上下载一个开发包安装为好。些函数最低的系统要求为windows2000和window Me.

假设的Flatform SDK安装在C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\目录下
在VC6中编译程序时(其他的编译工具遇到情况,用类似的方法解决)
如果出现这种错误:
error C2065: \\'SHCreateDirectoryEx\\' : undeclared identifier
则打开工具栏Project->Setting.s..
出现配置窗口
选择C/C++
Category(分类)选择Preprocessor(预处理器)
在Additional include directories
添加C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE

设置完成后
在程序中添加引入库
#pragma comment(lib, "C:\\Program Files\\Microsoft Platform SDK\\Lib\\shell32.lib")

----------------------------------------------自己的内容:------------------------------------------------------

由于我要编译的程序是公司的程序,所以也可以用如下的设置(我编译也成功了):

VC++6.0-》工程-》设置-》连接-》分类:常规-》对象/库模板-》

"C:\Program Files\Microsoft Platform SDK\Lib\shell32.lib" "C:\Program Files\Microsoft Visual Studio\VC98\Lib\UUID.LIB"

PS:这样设置,其实就是用SDk的”shell32.lib“而不用VC++自己的”shell32.lib“

------------------------------------------------------------------------------------------------------------------------
这样应该可以成功完成编译了。
3.函数使用
int SHCreateDirectoryEx(
HWND hwnd,
LPCTSTR pszPath,
SECURITY_ATTRIBUTES *psa
);
hwnd是窗口句柄,可以为NULL.
psa是安全属性设置项,可以为NULL.
pszPath要注意,这个路径必须是绝对路径. 比如c:\test, d:\hello, 不能写成test,也不能写成.\test这样的相对路径。

转载:http://xue23.blog.163.com/blog/static/9793442005725241450/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics