平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

经验技巧

====为Regular DLL工程加入ATL/WTL支持===========================
1.在工程的stdafx.h中除去#include <windows.h>,加上
#include <atlbase.h>
#include <atlapp.h>
extern CComModule _Module;或extern CAppModule _Module;
2.在工程主cpp(即main所处的文件中加入:
CComModule _Module; 或CAppModule _Module;
3.在main入口中模块加载处加入:
_Module.Init(NULL, HINSTANCE(hModule));
4.在main入口模块撤载处加入
_Module.Term();

 

====为VC6 ATL DLL工程加入WTL支持==============================
1.在工程的stdafx.h中的加上
#include <atlapp.h>
将extern CComModule _Module;改为extern CAppModule _Module;
2.在工程主cpp,即main所处的文件中改为:
CAppModule _Module;

====为VC.NET2003 ATL工程工程加入WTL支持==============================
1.在工程的stdafx.h的#include <atlbase.h>后
加入#include <atlapp.h>
去掉#include <atltypes.h>
================================
===== 为WTL加 Com 对象
1.创建一个同名ATL COM工程
2.将其idl和rgs文件复制加入到现有工程
3.在主cpp上加:
  #include "initguid.h"
  #include "XXX.h"
  #include "XXX_i.c"  
4.加入
  BEGIN_OBJECT_MAP(ObjectMap)
  END_OBJECT_MAP()  

====为将MFC工程加入ATL/WTL支持==============================
1.在工程的stdafx.h中尾部加入
#define _WTL_NO_AUTOMATIC_NAMESPACE
#include <atlbase.h>
#include <atlapp.h>
extern WTL::CAppModule _Module;

2.在工程theApp声明下加入:
WTL::CAppModule _Module;

3.在InitInstance中部加入
  _Module.Init(NULL, theApp.m_hInstance);

4.在ExitInstance中加入
_Module.Term();

====编译器技巧=================
====import语法========================
#pragma message ("TODO: Add the path to <Oledb32.dll>, and <Msado15.dll> via Tools->Options->Directories->Include Files. This is usually <C:\\Program Files\\Common Files\\system\\ole db\\>, and <C:\\Program Files\\Common Files\\system\\ado\\>, respectively.")
#import "C:\Program Files\Common Files\system\ole db\Oledb32.dll"  raw_interfaces_only exclude("IDBPromptInitialize", "IDataInitialize") no_auto_exclude
#import "C:\Program Files\Common Files\system\ado\Msado15.dll"  rename("EOF", "adoEOF") rename("BOF", "adoBOF")
#import <MsFlxGrd.ocx> raw_interfaces_only

====Select 模板技巧=================
对于在编译时有两种可能的语法,其中一种为错误,可使用Select编译时模板技巧排除,否则编译器同时测试两种语法导致编译错误.

====stlport安装==========================
1. 下载http://stlport.org/archive/STLport-4.5.3.ziphttp://linghuye.nease.net/Tools/stlp45andvc71.zip
2. 分别解压,并使用第2个压缩包内的文件:
   a.替换文件 STLport-4.5.3/stlport/config/stl_msvc.h
   b.添加文件 STLport-4.5.3/src/vc71.mak
3. 在VS2003的"包含文件目录"中加入STLport-4.5.3/stlport路径,并移至最优先上方.
4. 不欲使用STLport iostreams者,去除stlport/stl_user_config.h文件中"//# define _STLP_NO_OWN_IOSTREAMS  1"行前的"//".
   欲使用STLport iostreams者,
   a.将vc6.mak改名为makefile
   b.在Visual Studio .NET 2003 命令提示环境中,进入src目录
     nmake clean all
     nmake install
====指针应用===============================
指针一律初始化NULL,一律delete,因为NULL删除不出错.
====CSrollWindowImpl应用============================
1.继承于CSrollWindowImpl
2.将OnPaint消息传给CSrollWindowImpl处理.
3.在OnCreate中SetScrollSize.
3.编写void DoPaint(CDCHandle dc)
====C库冲突===========================
对于引入的C库由于LibC的各种冲突,应在链接设置中忽略LIBCXX.lib.
====mtl vc7.1安装===========================
覆盖补丁mtl_vc71patch.rar即可.
=============================
如果没有实践上的实例证明效率问题,则易用性最重要.
推论:最初的设计应以易用性为主.
====SOAP使用===================
1.客户端必须安装Soap发布包,否则失败.
'建立Soap客户端连接
Set SoapClient = CreateObject("MSSOAP.SoapClient")

'与服务器公开的WebService服务进行连接,只需一个暴露出来的WSDL文件
'由于WSDL文件在虚拟目录中,外部网络可以直接读取它.
Call SoapClient.mssoapinit("http://localhost/WebServices/WebCam/WebCam.WSDL"; )

'直接用soapclient调用COM方法,soapclient此时代表无状态的WenCam对象代理,方法调用同一般的COM调用.
'[out,retval]参数结果直接出现在返回值obj中.
Set obj = SoapClient.GrabFrame(10)

2.服务器端必须安装Soap Tookit包.
  a.暴露WSDL文件,在计算机管理->默认网站->新建->虚拟目录. 如上情况必须建两层WebServices/WebCam
    将WebCam.WSDL和WebCam.wsml放入虚拟目录WebCam映射到的硬盘目录下(一般也建在wwwroot下).
  b.由于微软IIS的一些低级Bug,必须重设WSDL执行映射:
    在计算机管理中点击你的虚拟目录如WebCam的属性,点击右下的配置按钮,->添加->扩展名填".wsdl"(不填双引号).
    动作选"限制为",并填入GET,POST,HEAD,打勾"教本引擎",去勾"检查文件存在".
    最后可执行文件填入:  C:\Progra~1\Common~1\MSSoap\Binaries\SOAPISAP.dll
    C:为系统盘,切记千万不要用"浏览"按钮来设,有Bug,而且以上路径不能用长文件路径名.
    
4.客户端不需要安装dll,服务器端必须注册.

=========================================
#include <ft2build.h>
#include FT_FREETYPE_H

<ft2build.h>对FT_FREETYPE_H做了宏定义.

posted on 2005-08-13 17:16 linghuye 阅读(1205) 评论(0)  编辑 收藏 引用 所属分类: 编程札记

只有注册用户登录后才能发表评论。