
Windows SDK
文章平均质量分 72
YapingXin
航天/航空/军工装备行业,航电系统、遥测/测发控系统、系统故障诊断、预测与健康管理(PHM)高级系统架构师。
展开
-
C Tips:获得当前运行目录(Windows版)
接口:BOOL GetCurrentModuleFolderPath(_Out_ LPTSTR * lpFolderPath, _Out_ DWORD * pLength);实现:#include const TCHAR FolderDelimiter = _T('\\');const TCHAR StringDelimiter = _T('\0');BOOL GetCurr原创 2015-02-02 15:47:43 · 916 阅读 · 0 评论 -
Visual C++ Tips: 查询计算机主板的序列号
以下函数将通过命令行的方式查询计算机主板的序列号。一般情况下通过这个小程序可以得到主板序列号,但是如果OEM厂商没有在BIOS中写入主板序列号,那么我们可能不到主板序列号。原创 2015-11-30 07:22:45 · 6824 阅读 · 0 评论 -
C++ Tips: 获取更精确的系统时间(Windows 系统)
如果要获得真正毫秒级甚至更高精度的当前系统时间,必须跟 CPU 打交道,别无它法。原创 2015-10-28 12:21:36 · 14314 阅读 · 1 评论 -
Windows API: 调用FindFirstFile之后发生的内存泄漏(未解决)
看这段正常得不能再正常的C语言源代码:bool check_file_exists(LPCTSTR lpFileName){ WIN32_FIND_DATA findFileData = { 0 }; HANDLE hFind = NULL; ULONGLONG fileSize = 0; hFind = FindFirstFile(lpFileName, &find原创 2015-08-31 18:22:14 · 2302 阅读 · 0 评论 -
Visual C++ Tips: warning C4996: 'stricmp' was declared deprecated
问题C4996这个编译警告以前遇到过,见:《Visual C++ Tips: warning C4996: ‘MBCS_Support_Deprecated_In_MFC’: MBCS support in MFC is deprecated》今天这个C4996警告不能用那个老的办法去解决: warning C4996: ‘stricmp’ was declared deprecatedOut原创 2015-07-02 20:19:02 · 3155 阅读 · 0 评论 -
Visual C++ Tips: fatal error LNK1276: invalid directive 'ComMode.Obj' found; does not start with '/'
问题将某古老的VC6项目迁移到VS2005,编译时出现这个错误: fatal error LNK1276: invalid directive ‘ComMode.Obj’ found; does not start with ‘/’解决经过广泛搜寻,发现是这样一条语句导致的这个编译错误:#pragma comment(linker, "ComMode.Obj")解决方案:把这行代码注释掉(Re原创 2015-07-02 19:45:16 · 2735 阅读 · 0 评论 -
C Tips: Convert GBK to Unicode (base on MultiByteToWideChar ())
目的本文基于 MultiByteToWideChar 实现了以下函数:BOOL GBKtoUnicode (WCHAR *pOut, char * pGBK);代码BOOL GBKtoUnicode (WCHAR *pOut, char * pGBK){ int retCode = MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED原创 2015-05-25 00:18:50 · 1083 阅读 · 0 评论 -
Visual C++ Tips: warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated
在用Visual Studio 2013编译一个旧的VC++项目时,出现大量的这样的警告:1>c:\program files (x86)\microsoft visual studio 12.0\vc\atlmfc\include\afx.h(38): warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC i原创 2015-02-22 21:33:59 · 28549 阅读 · 6 评论 -
Visual Studio Tips: error LNK1117: syntax error in option 'VERSION:1.20b'
遇到的问题在用Visual Studio 2012编译一个老C 程序时,出现一下编译错误: error LNK1117: syntax error in option ‘VERSION:1.20b’查MSDN,最终解决办法是:在项目属性的Linker属性中,Version设置有误: 把这项设置改为1.20,就解决了这个编译错误了。原创 2015-02-07 12:46:10 · 5003 阅读 · 0 评论 -
Windows SDK Tips: stdafx.h: 关于_WIN32_WINNT
遇到的问题最近在调试一个老程序,发现这个程序居然无法在Visual Studio 2012中调试运行,每次调试运行的时候就闪退了。根据编译中的提示查资料,最后解决的办法如下: 在stdafx.h中,原先的 _WIN32_WINNT 定义的值是 0x0400,改为0x0403就好了。官方解释MSDN有一篇文章解释了 _WIN32_WINNT 以及 WINVER 的用法:Using the Windo原创 2015-02-07 11:58:36 · 1222 阅读 · 2 评论 -
Visual C++ Tips: 用 IP Helper 获得网络接口的友好名称(Friendly Name)
前面有篇文章:《用 WinPcap 获取网络接口列表》,是通过 WinPcap 库来获得网络接口列表,但是拿到的网络接口名称对于人(Human Being)来说毫无意义,如下图: 实际上我们在 Windows 控制面板(Control Panel)中看到的是网络接口的“友好名称”(Friendly Name),如下: 为了拿到网络接口的“友好名称”,我遍查 MSDN,终于找到了答案。以下是我写的原创 2016-01-04 16:36:14 · 4975 阅读 · 3 评论