DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 405 406 407 408 409 410 411 412 413 ··· 474 下一页

2013年8月23日

摘要: 一个最简单Singleton的例子:///////// Test.h /////////template class CTest{private:_T n;static CTest* m_pInstance; // Notice: static member variable in template classprivate:CTest() { n = 0; }~CTest() { }public:static CTest* Instance(){if (!m_pInstance){m_pInstance = new CTest();}return m_pInstance;}void Set( 阅读全文
posted @ 2013-08-23 15:53 DoubleLi 阅读(1317) 评论(0) 推荐(0)

2013年8月22日

摘要: Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d;i = (int) d;或者:i = int (d);对于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:' 阅读全文
posted @ 2013-08-22 17:59 DoubleLi 阅读(645) 评论(0) 推荐(0)

摘要: 1.今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdcall#define WINAPIV __cdecl#define APIENTRY WINAPI#define APIPRIVATE __stdcall#define PASCAL __stdcall#define cdecl 阅读全文
posted @ 2013-08-22 13:49 DoubleLi 阅读(1061) 评论(0) 推荐(0)

摘要: Directive Parameter order Clean-up Passes parameters in registers?register Left-to-right Routine Yespascal Left-to-right Routine Nocdecl Right-to-left Caller Nostdcall Right-to-left Routine Nosafecall Right-to-left Routine No调用约定 压参数入栈顺序 把参数弹出栈者 函数修饰名(Calling convention)----------------------------- 阅读全文
posted @ 2013-08-22 13:44 DoubleLi 阅读(325) 评论(0) 推荐(0)

2013年8月20日

摘要: __declspec(dllexport)2009-03-04 17:25 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN里面是怎么说的:不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dlli 阅读全文
posted @ 2013-08-20 16:37 DoubleLi 阅读(891) 评论(0) 推荐(0)

2013年8月17日

摘要: 一、CString GetCurPath() { TCHAR exeFullPath[MAX_PATH]; CString strPath; GetModuleFileName(AfxGetInstanceHandle(),exeFullPath,MAX_PATH); strPath.Format("%s", exeFullPath); if(strPath.Right(1)!="//") strPath += "//"; return strPath; }二、 HINSTANCE hOcx = ::GetModuleHandle(& 阅读全文
posted @ 2013-08-17 12:28 DoubleLi 阅读(965) 评论(0) 推荐(0)

2013年8月16日

摘要: 当一个文件被映射到调用进程的地址空间时,GetModuleHandle函数得到其中某一模块的句柄。 使用GetModuleHandle函数格式:HMODULE GetModuleHandle( LPCTSTR lpModuleName); 参数 lpModuleName: [in]用指针指向一个包含模块名以NULL字符结尾的串,模块是.dll或.exe文件。如果文件扩展名省略,则增加默认的扩展名.dll。文件名串可以是省略号(...),表示模块名没有扩展名。这个串不是必须指定一个路径。当指定一个路径时,确定要用反斜线(\),而不是斜线(/)。这个模块名将和当前映射到调用进程地址... 阅读全文
posted @ 2013-08-16 19:35 DoubleLi 阅读(9003) 评论(0) 推荐(0)

摘要: ActiveX异步回调JavaScript开发环境:VC6.0。背景知识:COM/ActiveX/JavaScript/MFC/Thread想必用过Ajax的童鞋们都知道xmlhttp这个东西吧,通过设定onreadystatechange属性,我们就可以指定他状态改变的回调函数,当状态改变时,ActiveX控件就会调用我们通过onreadystatechange属性制定的回调函数。从而就出现了Ajax给我们带来的精彩。关于Ajax的技术我们这里不做讨论,我们的目的就是实现像xmlhttp这样具有异步回调JavaScript功能的ocx控件来。Let’s go!1.建立MFC ActiveX 阅读全文
posted @ 2013-08-16 19:05 DoubleLi 阅读(1890) 评论(1) 推荐(1)

摘要: 第一种:通过execScript调用。这种方法,虽然操作方便,但不能获取返回值。m_spHtmlDoc->get_parentWindow(&m_pHtmlWindow);VARIANT ret;ret.vt = VT_EMPTY;BSTR bstr = sScript.AllocSysString();bRet = m_pHtmlWindow->execScript(bstr, L"javascript", &ret);::SysFreeString(bstr);sRet = CString(ret);第二种:先用GetIDsOfNames找到 阅读全文
posted @ 2013-08-16 18:51 DoubleLi 阅读(3934) 评论(0) 推荐(0)

摘要: DLL工程,Debug版本下输出文件由basetool.dll basetool.lib 改为basetoolD.dll basetoold.lib 需设置:1、配置属性-常规-目标文件名 $(ProjectName) 加d2、配置属性-连接器-常规-输出问件 由 加d3、配置属性-连接器-高级-导入库,设置文件名$(OutDir)$ProjectName)d.lib4、如果有导出文件,.def文件中也一定要修改导出库的名字 LIBRARY "BaseTool" 变为 LIBRARY "BaseToold"关于相对目录相对目录是相对某个文件而言的,例如在 阅读全文
posted @ 2013-08-16 09:17 DoubleLi 阅读(26316) 评论(1) 推荐(4)

上一页 1 ··· 405 406 407 408 409 410 411 412 413 ··· 474 下一页