获取主机名称是关于SetComputerNameEx函数的使用问题!
2008-04-30 19:21
645 查看
最近做个小程序要使用到SetComputerNameEx和GetComputerNameEx两个函数,
下面是改函数在MSDN中的解释
BOOL SetComputerNameEx(
COMPUTER_NAME_FORMAT NameType, // name type
LPCTSTR lpBuffer // new name buffer
);BOOL SetComputerNameEx(
COMPUTER_NAME_FORMAT NameType, // name type
LPCTSTR lpBuffer // new name buffer
);
特别是:
Windows 95/98/Me: Unsupported.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows 2000.
此外要使用该函数还要使用Platform SDK 2003要去微软网站下。
本来以为在要用到该函数的.CPP文件的开头部分加上
#define _WIN32_WINNT 0x0501
#include <windows.h>
两行就可以了,谁知道编译来编译去就是报:SetComputerNameEx未定义的错,在网上找了半天
按照http://topic.csdn.net/t/20031109/01/2441881.html这篇帖子改的,人家实现了我怎么报错呢?
为了找到问题的原应,我重新新建了一个Win32 Console Applicetion,在文件头加上上述代码,不报错。
先来想去,应该是_WIN32_WINNT 0x0501的问题。回头打开原来的工程,把
#define _WIN32_WINNT 0x0501剪切到stdafx.h的一开始部分,对了!
自己简单分析下原因,应该是由于这句话的意思#define _WIN32_WINNT 0x0501就是要在程序编译的时候说明
本程序实在XP下运行的,而编译器最开始编译的应该是stdafx.h,假如把#define _WIN32_WINNT 0x0501放在
其他cpp文件里,那么编译器并不认这句话,所以就会报错。:)这样解释还通啊!
各位高手多指教指教啊!
另外,补充做了如上工作后如果要是使用CFileDialog,那么请在#include <afxwin.h>的后面添加下面这句:#undef _WIN32_WINNT。否则对话框打开后会报错,有关详细文章请参考:http://dev.csdn.net/article/07/07075.shtm
下面是改函数在MSDN中的解释
BOOL SetComputerNameEx(
COMPUTER_NAME_FORMAT NameType, // name type
LPCTSTR lpBuffer // new name buffer
);BOOL SetComputerNameEx(
COMPUTER_NAME_FORMAT NameType, // name type
LPCTSTR lpBuffer // new name buffer
);
特别是:
Requirements
Windows NT/2000 or later: Requires Windows 2000 or later.Windows 95/98/Me: Unsupported.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows 2000.
此外要使用该函数还要使用Platform SDK 2003要去微软网站下。
本来以为在要用到该函数的.CPP文件的开头部分加上
#define _WIN32_WINNT 0x0501
#include <windows.h>
两行就可以了,谁知道编译来编译去就是报:SetComputerNameEx未定义的错,在网上找了半天
按照http://topic.csdn.net/t/20031109/01/2441881.html这篇帖子改的,人家实现了我怎么报错呢?
为了找到问题的原应,我重新新建了一个Win32 Console Applicetion,在文件头加上上述代码,不报错。
先来想去,应该是_WIN32_WINNT 0x0501的问题。回头打开原来的工程,把
#define _WIN32_WINNT 0x0501剪切到stdafx.h的一开始部分,对了!
自己简单分析下原因,应该是由于这句话的意思#define _WIN32_WINNT 0x0501就是要在程序编译的时候说明
本程序实在XP下运行的,而编译器最开始编译的应该是stdafx.h,假如把#define _WIN32_WINNT 0x0501放在
其他cpp文件里,那么编译器并不认这句话,所以就会报错。:)这样解释还通啊!
各位高手多指教指教啊!
另外,补充做了如上工作后如果要是使用CFileDialog,那么请在#include <afxwin.h>的后面添加下面这句:#undef _WIN32_WINNT。否则对话框打开后会报错,有关详细文章请参考:http://dev.csdn.net/article/07/07075.shtm
相关文章推荐
- 使用VMware VSphere WebService SDK进行开发 (五)——根据虚拟机的名称获取对应主机的IP地址
- 使用VMware VSphere WebService SDK进行开发 (五)——根据虚拟机的名称获取对应主机的IP地址
- [置顶] MFC树形控件CTreeCtrl使用方法、遍历、SetCheck无效、根据名称获取节点、获取选中节点等问题
- SpringMVC请求使用@PathVariable获取文件名称,导致扩展名截掉问题
- 关于IAP:测试时能获取产品价格,却不能获取产品名称的问题
- Unity3D-关于使用LayoutGroup自动布局后获取宽高不对的问题
- 关于使用tomcat自带连接池xapool偶尔无法获取数据库连接的问题(报空指针)
- android 线程中的ui问题 Handler的基本使用 关于获取动态时间在ui的问题
- 关于使用AJAX获取数据时,由于IE缓存而导致数据不更新,串数据的问题!
- 关于使用input type=file 标签上传文件的注意细节(上传文件 无法获取文件 问题)
- 关于RCP中使用系统resource navigator图标和项目名称不显示的问题
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- 关于RCP中使用系统resource navigator图标和项目名称不显示的问题
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- java使用js引擎时,关于时间的问题getTime()获取为NAN的问题
- 关于使用request[this.控件名.Unique]获取控件值的问题
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- 关于swing Jframe 按照名称获取所包含JTextField对象引用的问题解决
- 关于spring使用@value注解获取properties文件属性问题
- 关于IAP:测试时能获取产品价格,却不能获取产品名称的问题