分类: c/c++ |

VS2013 密钥 – 所有版本

 Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9

Visual Studio Premium 2013 KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494

Visual Studio Professional 2013  KEY(密钥): XDM3T-W3T3V-MGJWK-8BFVD-GVPKY

Team Foundation Server 2013 KEY(密钥):MHG9J-HHHX9-WWPQP-D8T7H-7KCQG

我的是VS Professional (专业版)的找了好久都没找到激活码- -,最终在远景论坛上找到了。不容易啊,买不起正版啊。~

VSKEY

在VS中的 “帮助” >”关于Microsoft Visual Studio”中可以看到你的版本号~  也可以在激活页面看见你的版本号。序列号输进去即可~

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 45995

VC6下实现CHtmlView的external的方法

 源码直接打包在附件,应该说标题不对,不是CHtmlView,而是用Webbrowser2控件来搞的。VS2008下实现external相对容易一点,请看

在MFC中实现CHtmlView与Javascript交互最简单的方法

 

点击下载此文件

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8314

高灰白话Com组件

 什么是Com组件,首先给出百度百科的解释

COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。

 简单的说就是微软搞出来的一种软件开发技术。这种软件开发技术的好处之一就是机器码级别的代码共享。

这个世界上有很多用不同的语言写程序的程序员,但不管是什么语言最终是被转化成机器可以识别的二进制代码来给计算机执行,所以机器码级别的代码共享就可以跨越开发语言的界线。

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7319

gcc/g++命令参数

 gcc/g++ 命令的常用选项

格式(选项 && 解释 )
linux gcc常用命令集合:
-o FILE      &&     指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.
-c           &&     只编译生成目标文件,不链接
-m486        &&     针对 486 进行代码优化。
-O0          &&     不进行优化处理。
-O 或 -O1 &&     优化生成代码。
-O2          &&     进一步优化。
-O3 比 -O2 &&     更进一步优化,包括 inline 函数。
-w           &&     关闭所有警告,建议不要使用此项
-Wall        &&     允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告
-werror      &&     把所有警告转换为错误,以在警告发生时中止编译过程                             
-MM          &&     输出一个make兼容的相关列表
-v           &&     显示在编译过程的每一步中用到的命令
-E           &&     只运行 C 预编译器。
-shared      &&     生成共享目标文件。通常用在建立共享库时。
-static      &&     链接静态库,即执行静态链接
-lFOO        &&     链接名为libFOO的函数库
-g           &&     在可执行程序中包含标准调试信息
-ggdb        &&     在可执行程序中包含只有GNU debugger才能使别的达两条是信息
-O           &&     优化编译过的代码
-ON          &&     指定代码优化的级别为N,o<=N<=3
-ansi        &&     支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分(但这一选项并不能保证生成ANSI兼容的代码) 这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
 
-pedantic &&     允许发出ANSI/ISO C标准所列出的所有警告
-pedantic -errors      &&     允许发出ANSI/ISO C标准所列出的所有错误
-traditional           &&     支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系

-IDIRECTORY      &&     指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY      &&     指定额外的函数库搜索路径DIRECTORY。
-DFOO=BAR &&     在命令行定义预处理宏FOO,其值为BAR
-IDIRNAME &&     将DIRNAME加入到头文件的搜索目录列表中
-LDIRNAME &&     将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库
-DMACRO      &&     以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN     &&     以字符串“DEFN”定义 MACRO 宏。
-UMACRO      &&     取消对 MACRO 宏的定义。

个人使用:
使用gcc生成可执行文件后使用 ./filename执行

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7521

 想要在Javascript中调用C++的方法,只要实现CHtmlView的OnGetExternal方法就可以,OnGetExternal要返回一个IDispatch的指针。关于如何实现取得这个IDispatch我研究了几天,甚至把那本《Com技术内幕》都看了一遍。

我最开始尝试的方法是直接实现一个直接继承于IDispatch的类,实现它的GetIDsOfNames和Invoke等等。不知道这是不是一个最原始的方法了,虽然可以实现,但是实现的过程非常的繁琐,而且在实现Invoke的时候还要处理各种类型的变量问题。

后来尝试的是再建立一个新的atl工程,然后实现一个标准的COM组件,最后在MFC中用标准的COM组件的调用方式来取得一个接口的IDispatch指针。虽然相对上面的这个方法,在需要写的代码量上已经减少了很多了,但要生成一个dll。

最后在网上发现了一个方法,应该算算得上是最简单的方法了吧。通过CCmdTarget实现自动化服务器。

查看更多...

Tags: javascript MFC

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 18057

CHtmlView中添加NewWindow3

 头文件的中 

.h 
public: 
DECLARE_EVENTSINK_MAP()
void  NewWindow3(            
IDispatch  **ppDisp, 
VARIANT_BOOL  *Cancel, 
DWORD  dwFlags, 
BSTR  bstrUrlContext, 
BSTR  bstrUrl 
) ; 

.cpp 
#include  <exdisp.h> 
#include  <exdispid.h> 
#include  <Mshtml.h> 
#include  <Mshtmdid.h> 
#include  <shobjidl.h> 

BEGIN_EVENTSINK_MAP(CHtmlInExeView,  CHtmlView)
ON_EVENT(CHtmlInExeView,  AFX_IDW_PANE_FIRST,DISPID_NEWWINDOW3,NewWindow3,VTS_PDISPATCH  VTS_PBOOL  VTS_I4  VTS_BSTR  VTS_BSTR)

//或者

//ON_EVENT(CCometWebBrowser,  AFX_IDW_PANE_FIRST,273,NewWindow3,VTS_PDISPATCH  VTS_PBOOL  VTS_I4  VTS_BSTR  VTS_BSTR) 

//273 就是DISPID_NEWWINDOW3 
END_EVENTSINK_MAP()


void CHtmlInExeView::NewWindow3(IDispatch  **ppDisp, 
  VARIANT_BOOL  *Cancel, 
  DWORD  dwFlags, 
  BSTR  bstrUrlContext, 
  BSTR  bstrUrl 
  ) 
{  
MessageBox(_T("拦截测试"),_T("提示"),MB_OK);
}

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7447

GCC 命令行详解

 1。gcc包含的c/c++编译器
gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什
么意思:))一般c程序就用gcc编译,c++程序就用g++编译

2。gcc的基本用法
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7014

下载chrome代码并编译

做好发掘工作的第一步就是获取代码并能成功编译调试,我这里只谈在windows环境下的编译,我的操作系统是Windows Server 2008 企业版,其他windows 环境应该没有什么大的区别。其实我写此文的目的可能更多的是加深印象,做个备忘,因为官方描述的编译过程已经比较清楚了,如果你对官方的文档描述更感兴趣,请参考这里

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9489

C++库大全

 基础类

1、 Dinkumware C++ Library
参考站点:http://www.dinkumware.com
P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品中采用Dinkumware的库。

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8651

VC进程通信之共享存储区

 #pragma data_seg(“分区关键字”)

//定义变量

#pragma data_seg()

#pragma comment(linker,"/SECTION:分区关键字,RWS")

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7923

VC如何制作启动动画

使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应用程序,第四种适用于基于对话框的应用程序。

1.利用组件库中的Splash Screen组件实现

  (1)用Photoshop等制作启动画面图像,保存为bmp格式。
(2)用Appwizard建一个基于单文档的工程Splash。
(3)在资源中插入位图资源

  打开VC++的资源编辑器,用鼠标右键单击Resources文件夹,选择Import命令,插入所制作的位图。如果位图超过256色,VC会弹出一个对话框,提示位图已经插入但不能在位图编辑器中显示,确定即可。将位图ID改为IDB_SPLASH。

  (4)添加Splash Screen控件

查看更多...

Tags: vc 启动 动画

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8952

三种常见中文内码的转换方法

我们平时常见的三种中文内码是:GB2312(简体中文)、GBK、BIG5(繁体中文)。网上有很多中文内码的专用转换工具。我们碰到由于内码不 一致而导致的乱麻问题,用这些工具可以进行相互转换。但论坛里经常有人问如何在自己的程序中集成这些功能呢?本文将介绍如何利用 Windows 提供的API 函数来实现。转换涉及到的 API 函数主要有两个:MultiByteToWideChar 和 WideCharToMultiByte。有关这两个函数的详细文档请参考 MSDN,本文不再赘述。

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 6321

MFC激活自定义消息

 上一片博文中讲到如何添加自定义消息,那么这一篇中来讲如何激活自定义消息。

自定义的消息激活的方式多种多样,可以自行确定。我这里已用Timer来激活为例

概括:我有一个定时器消息处理函数,每一秒触发一次,我想在每隔5秒的时候触发一次自定义函数。

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8348

图解VC添加自定义消息

MFC如何添加自定义消息

为满足特定应用程序的需要,有时需要添加自己的消息和消息处理函数,我们已单文档MFC为例演示一下如何添加MFC自定义消息

首先是添加消息的种类。我们知道windows下面有各种消息,比如WM_LBUTTONDBLCLK 表示鼠标左键单击消息,WM_KEYDOWN 表示键盘某键按下的消息,我们自定义一个消息,当然也要添加我们自己的消息咯。

在需要添加消息映射的CPP中添加如下的消息定义

#define WM_MYMESSAGE WM_USER+100

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7642

 CDC:所有设备环境类的基类,对GDI的所有绘图函数进行了封装!可用来直接访问整个显示器或非显示设备(如打印机);

CPaintDC:用于响应窗口重绘消息WM_PAINT的绘图输出,不仅可对客户区进行操作,还可对非客户区进行操作!

CClientDC:代表窗口客户去的设备环境,一般在相应非窗口消息对客户区进行绘图时要用到该类!

CWindowDC:代表整个窗口设备,包括客户区和非客户区!除非要自己绘制窗口边框和按钮,否则一般不用他!

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8307

IIS不能加载ISAPI FILTER的原因

ISAPI FILTER值需要正确导出两个函数即可。不过有时候,你在VS2008上面编译的FILTER却不能被加载,在IIS上一直显示着向下的红色箭头。原因有多种,这里我就分享一种我碰到的,也算是比较郁闷的一种情况。

 

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9116

CComPtr智能指针

 COM编程的些许资料

查看更多...

Tags: CComPtr 智能指针

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 13617

vc中调用Com组件的方法详解

 需求:
1.创建myCom.dll,该COM只有一个组件,两个接口:
   IGetRes--方法Hello(),
   IGetResEx--方法HelloEx()
 

 

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8953

如何获取本机的IP地址(各种语言)

在很多的socket编程中,经常会有需要获取本机ip的地方。所以下面罗列一下几种常用编程语言的获取本机ip的方法。

首先要列出的是C/C++的方法。在这里顺便说一点,C语言和C++的思想是有很大的区别,但是基本语法类似。所以如果我给出一个函数,里面用了cin,cout之类的C++里面的东西,你不要以为这不是C语言。你如果需要在纯c语言下编译,自己改掉这条语句就是了。这是题外话了  。

 

查看更多...

Tags: ip地址 本机ip socket

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9912

如何设置客户区区域和非客户区域

 问题源于CSDN,收藏一下以后可能有用.

 

WM_NCCALCSIZE---------> 
afx_msg   void   OnNcCalcSize(   BOOL   bCalcValidRects,   NCCALCSIZE_PARAMS*   lpncsp   ); 
改变lpncsp-> rgrc[0]的left,top,等值 

 

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7981