C++相关
文章平均质量分 61
gaoh832002
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windowsXP获取权限
WindowsXp也可以向Win7一样获取管理员权限滴!以下代码经过测试,可以在xp下正常检测。当以管理员用户运行此程序时(包括右键选择以管理员权限运行),IsAdmin返回为TRUE。BOOL IsAdmin();int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){int nRetCode = 0;// i转载 2012-10-16 09:31:16 · 286 阅读 · 0 评论 -
_tprintf显示日文乱码
<br />_tprintf显示日文乱码显示日文是会有乱码,代码如下:<br /> BSTR name = ::SysAllocString(_T("私は桜てす"));<br /> _tprintf(_T("name = %s "), name);<br /> <br />解决办法:<br />在调用_tprintf之前,设置一下语言,代码如下:<br />_tsetlocale(LC_ALL, _T("jpn"));<br /> <br />ok,乱码没有了。原创 2011-05-18 11:43:00 · 586 阅读 · 0 评论 -
#pragma用法说明
#pragma 预处理指令详解 <br /><br /> 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。 <br />#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。 <br />依据定义,编译指示转载 2011-03-15 09:05:00 · 189 阅读 · 0 评论 -
C++非托管调用托管dll
如要保证调用托管dll,需定义好托管C++的头文件。 1.托管C++设置为混合编译模式。 2.头文件中要保证引入C++非托管库的头文件,如: #include #pragma comment( lib, "comsupp.lib" ) #pragma comment(lib, "comsuppw.lib") #pr原创 2011-02-22 17:58:00 · 391 阅读 · 0 评论 -
判断http路径是否合法
BOOL AFXAPI AfxParseURLEx( <br /> LPCTSTR pstrURL, <br /> DWORD& dwServiceType, <br /> CString& strServer,原创 2011-02-21 18:10:00 · 355 阅读 · 0 评论 -
VC中获取当前系统环境变量
getenv, _wgetenv <br />单字节用getenv <br />宽字符用_wgetenv <br />如: <br />char* path = getenv("programfiles"); <br />wchar* path = _wgetenv(L"programfiles"); <br />如果原创 2011-02-14 10:39:00 · 606 阅读 · 0 评论 -
浏览文件夹并获取其路径
BROWSEINFO bi; <br /> ::ZeroMemory(&bi,sizeof(bi)); <br /> WCHAR chPath[MAX_PATH] = _T(""); <br /> LPITEMIDLIST pNetHoodIDL; <br />::SHGetSpecialFolderLoc原创 2011-03-03 15:50:00 · 205 阅读 · 0 评论 -
C/C++中重复定义
头文件就是对用户的说明。函数,参数,各种各样的接口的说明。 那既然是说明,那么头文件里面放的自然就是关于函数,变量,类的“声明”了。记着,是“声明”,不是“定义”。那么,我假设大家知道声明和定义的区别。所以,最好不要傻嘻嘻的在头文件里定义什么东西。比如全局变量:/*xx头文件*/#ifndef _XX_头文件.H#define _XX_头文件.Hint A;#endif那么,很糟糕的是,这里的int A是个全局变量的定义,所以如果这个头文件被多次引用的话,你转载 2011-01-10 13:23:00 · 306 阅读 · 0 评论 -
多重继承转换二义性
<br />如果一个类继承多个基类,而且这些基础继承相同的基类,则进行类型转换时,如果转换成相同的父类型,编译时会产生二义性错误:<br /> class A<br /> { <br /> virtual void test(){} ;<br /> } ;<br /> class B : public A {} ;<br /> class C : public A {} ;<br /> class D: public B, public C {} ;<br /> D *pa = new D() ;<br转载 2011-01-08 22:01:00 · 239 阅读 · 0 评论 -
获取windows特殊文件夹的路径
#include "shlobj.h" //包含头文件WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation (HWND hwndOwner, int nFolder,LPITEMIDLIST * ppidl); //函数声明hwndOwner: 指定了"所有者窗口",在调用这个函数是可能出現的对话框或信息框.nFolder: 是一个整数id,決定哪个目录是待查找目录,它的取值可能是CSIDL_BITBUCKET 回收转载 2011-05-24 17:40:00 · 328 阅读 · 0 评论 -
VC获取启动程序的输出
在程序的开发过程中,经常会遇到调用第三方应用程序的情况,这个时候获取第三方程序的输出就事关重大。那么如何获取第三方程序的输出呢?1.使用CreateProcess,利用管道机制。下面的代码获取了console.exe程序的输出,其参数为-a -b, 可根据情况而变。本程序利用了MFC库。int main(){ SECURITY_ATTRIBUTES sa;原创 2012-09-06 07:48:03 · 319 阅读 · 0 评论 -
C/C++多字节输入输出
使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东西,一会儿不能输出中文,一会儿不支持中文文件名的,搞得头大。网上搜了搜,没有发现适用于所有情况的解决方案。不过后来自己经过多次测试,基本解决了这些问题,现在写成文字作为一个总结,也供碰到同样问题的朋友转载 2012-09-19 08:37:28 · 475 阅读 · 0 评论 -
输出文字到utf8编码的文件
当进行文件写入操作时,会遇到要求文件格式为UTF-8的情况,而写入的文字为宽字符。通常会采用wofstream对象,当然它是可用的,然而生成的文件格式却是ANSI。ok,这是因为UTF-8与宽字符的编码格式不同导致的。需要将宽字符转换为UTF-8,而后用ofstream输出即可。static CString ConvertWide2UTF8(CStringW& wideStr){i原创 2012-09-19 13:41:55 · 1040 阅读 · 0 评论 -
VC查内存泄露
1.对于win32程序头文件: #define _CRTDBG_MAP_ALLOC #include #include 最好也引入#include “DEBUG_NEW.h”:可以显示泄露的具体位置。 在测试代码头部写原创 2010-01-21 19:32:00 · 197 阅读 · 0 评论 -
MFC dll 中调用资源32
1.mfc的dll时引入mfc库的dll在调用资源之前必须先初始化程序 if(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)) { return error; } 正常的mfc中会隐式调用此程序,而在dll中必须显式调用。 当然这还不够还需要调用一个宏 AFX_MANAGE_STATE(Afx原创 2011-02-19 16:57:00 · 215 阅读 · 0 评论 -
C++非托管调用托管C#编写的Com
用C#编写Com是如此的简单,比C++的ATL还要简单。但是当C++的非托管代码调用C#编写的托管Com时,接口函数变成什么样子了呢?例如:C#中的接口如下定义: [Guid("FA1FD727-74C7-4434-95D4-B25BC82F709C")] public interface ICSharp { [DispId(1)]原创 2011-04-21 10:36:00 · 958 阅读 · 0 评论 -
C++ 文件内容的读写
在C++的各种库中,基本都有对文件的读写操作的类。然而windows的基本库中对文件的操作应该是最快捷和简单的了。 1.查看文件是否存在,需要引入 #include #include原创 2011-12-30 14:41:04 · 262 阅读 · 0 评论 -
C++中##在linux中应用的限制
在微软的编译器下,在宏中使用##可以将两个字符串连接起来,如下:#define STR_COMTACT(name) "good bye" ## name ## "!" 然而在linux的gcc4.1编译器下,这样的宏在编译时是非法的,但可以这样处理:#define STR_COMTACT(name) string( "good bye") + name + "!"原创 2011-11-18 16:34:01 · 209 阅读 · 0 评论 -
数据类型转换
1.基本概念 LPCSTR 32-bit指针,指向一个常数字符串 LPSTR 32-bit指针,指向一个字符串 LPCTSTR 32-bit指针,指向一个常数字符串,此字符串可移植到Unicode和DBCS(双字节字集) LPTSTR 32-bit指针,指向一个字符串。此字符串可移植到Unic原创 2009-10-21 10:06:00 · 214 阅读 · 0 评论
分享