- 博客(82)
- 资源 (4)
- 收藏
- 关注
转载 RichEdit控件导致DoModal窗口不出现
RichEdit控件导致DoModal窗口不出现——没有进入OnInitDialog如果是对话框加上一个RichEdit控件,必须在对话框显示之前调用一次AfxInitRichEdit函数,具体做法是在应用程序类的InitInstance成员函数里面调用AfxInitRichEdi函数,问题即可解决。
2012-11-30 15:06:49
1034
转载 (转载)C++两次调用localtime函数出错
(转载)C++两次调用localtime函数出错此为最近项目遇到的一个小bug,在csdn上提问,已经的到圆满解答,总结一下。出错测试代码如下,使用Linux环境下gcc编译:#include #include #include int main(){ struct timeb tp_early; struct timeb tp_late;
2012-11-26 14:57:25
3153
转载 CImage加载多种图片的方法
CImage加载多种图片的方法此方法经测试是可以加载jpg,gif,bmp等常见格式图片的。 // 创建一个imagelist CImageList imgList; imgList.Create(16, 16, ILC_COLORDDB|ILC_MASK, 0, 1); // 创建一个bitmap对象指针 Bitmap *pBmp = new
2012-11-09 15:48:51
6431
原创 一个DC拷贝到内存DC上。
1. 创建一个创建内存DC与HBitmap 对象 HDC hMemDC; HBITMAP hBitmap, hOldBitmap; // 位图句柄 HDC hdc = ::GetDC(m_hWnd); // 得到屏幕DC hMemDC = ::CreateCompatibleDC(hdc); // 兼容内存区域 hBitmap =
2012-05-25 09:14:32
5911
原创 使用WaitForSingleObject(ha,INFINITE)函数的练习
今天理解了 WaitForSingleObject(ha,INFINITE); 函数下, 当线程函数都执行完毕后,才执行后面的代码。 写了下线程函数.CArray m_arrThreadInfo;DWORD WINAPI ThreadCalFunc(LPVOID lpParam){ stThreadInfo* pParam = (stThreadInfo*)lpParam;
2012-04-22 16:33:35
3909
原创 将第某位设置为0或1
// 如何将int 的第十位 设置为0 。//将short 中的 第十一位设置为1;//a = 1011 1111 1001 1101int funInt(){ // 将a 的第三位设置为0 int a = 157; //1001 1101 int b = 1; // 0001 b = b b = ~b ; // 1011
2012-04-19 11:05:37
1242
原创 缓冲区存取数据
BYTE * funsave(BYTE *bytebuf) // 将数据保存到buf中{ float f = 76; byte b = 0; double d = 2.543; int i = 99; SYSTEMTIME s; s.wDay = 20; s.wHour = 8; s.wMilliseconds = 12; s.wMinute = 10;
2012-04-19 11:04:03
811
原创 PostThreadMessage传递给线程中的响应函数OnSpatialQuery 可 lParam的值却为“1”。.
记录一个问题, 过几天在查找原因,开始构建了一个多边形Ptr对象, 然后通过PostThreadMessage传递给线程中的响应函数OnSpatialQuery 可 lParam的值却为“1”。 不知道怎么回事 // 构造查询多边形 IPolygonPtr pPoly; GetQueryPolygon(&pPoly); CNearResTree *pNRTree = &m
2012-04-18 16:10:18
1097
原创 谨记:CoInitialize是以单线程的方式创建com对象
CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。曾遇到过, 在主程序中调用CoInitialize创建了com对象,之后主程序启动一个线程,该线程中需要创建DOC对象 (pDoc.CreateInstance(__uuidof(DOMDoc
2012-04-13 13:18:00
1721
转载 动态建立和删除二维数组
给出动态建立和删除二维数组的函数,方便大家使用:/*建立时 先给行分配*[rows]内存空间,再给每行分配int [cols]内存空间;删除时,过程刚好相反*/#include template bool Make2DArray(T ** &x, int rows, int cols){// Create a two dimensional array. try {
2012-03-27 09:32:22
1303
原创 关于GDI绘制遇到的几个问题
最近遇到一个问题记录下我现在有com组件中一个Graphics gc对象, 而外部动态库的接口func(HDC hdc,......)函数要求传入 HDC hdc, 我使用了 HDC hdc = gc.GetHDC(); 但是忘记了 gc.ReleaseHDC(hdc) 使得屏幕上没有绘制出来图形.另外听老大说 GetHDC 是得到整个屏幕的DC. func内部实现是将整个dc
2012-03-21 16:33:30
637
原创 获得本地IP
char szHostName[128]; // 本地主机名 memset(szHostName,'0',128); char szHostIP[30]; memset(szHostIP,'0',30); CString m_IP,m_LocalIP; if( gethostname(szHostName,128) == 0)
2012-03-21 15:43:06
463
原创 紧接上回静态库使用 注意运行库版本要一致
有个应用静态库的工程是在vs2010 中编译的,使用的运行库是vs2010 的运行库。而静态库是使用vc6.0的编译时运行库。 在引入lib时 应用工程link时会报错, 主要问题是运行库版本不一致, 后来我使用的vs2010编译的lib静态库. 解决了部分问题。以摘录百度网友 的《VC编译——link时报重复定义错误》 文章 C Runtime Libr
2012-03-15 17:27:36
2091
1
原创 有关静态lib编译的注意点
最近遇到过静态库编译的一些问题 仅此记录下解决方法1. 原工程为动态库工程,现应要求将其改编成静态库编译首先新建了一个staticlib工程,将原来的。h.cpp 文件加入到该工程中, 这里比对了下 工程设置 staticlib 中多出一个library 对话框项 c++ 对话框项中的 preprocessor 中 预定义宏出现了 “_LIB”, 对比两个 dsp工程文件中
2012-03-15 16:57:31
768
转载 虚函数的应用
之前总是看到一个画圆 画框 画线的虚函数列子最近也应用了一次虚函数class BASE_API CMsgCmd {public: CJCJMsgCmd(); virtual ~CJCJMsgCmd(); virtual void Execute(){};};class BASE_API CMsgCmdA :public CMsgCmd {public
2011-10-21 17:29:26
685
转载 导出函数__declspec(dllexport)
关于DLL的函数: 动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function)。 导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。 输出函数的方法有以下几种: 1、传统的方法 在模块定义文件的EXPORT部分指定要输入的函数或者变量。语法格式如下: entryname[=
2011-10-21 16:53:50
40206
2
原创 关于调试com组件中的一个接口
关于调试com组件中的一个接口在vs2010 中 选择 progject 中的“Basytype Property ” 显示如下界面Configration Properties 中的 “General” 设置com组件的输出路径,Intermediate
2011-09-20 10:19:37
1418
原创 不清楚为什么写成 CALLBACK* DlgCloseUDPNet 类型
近日对动态调用dll 时定义的 一个函数指针类型不太理解, 不清楚为什么写成 CALLBACK* DlgCloseUDPNet 类型 先查了下 关于 “__stdcall约定” 如果通过VC++编写的DLL欲被其他语言编写的程序调用,应将函数的调用方式声明
2011-08-02 09:09:02
555
原创 用一般MFC生成COM的EXE, 记得加上 1 TYPELIB "XXXXXXXXS.tlb"
前几天将地图COM 的exe编译个release版本给现场的人员, 现场反馈com的一些事件进不去, 问了下老大,老大说“在exe所在目录中加入了同名的.tlb文件,客户端能调用到事件啦.”后来我找了找原因,也没有咋看明白. 我查找到 因为我的组件都不是直接用ATL生成,而是通
2011-07-27 08:44:52
4087
转载 ATL 工程多字节
多字符的 如果换了其他语言的操作系统 有可能会出现乱码建议使用unicode,其中一个原因是底层的一些api都是unicode版的
2011-06-21 14:37:00
776
转载 在IE中如何调试OCX控件
IE8打开保护模式的情况下,基本上无法使用它直接调试,因为调试器附加的进程不是控件所在的进程,建议在控件里直接加入一句 DebugBreak(),由它来启动调试即可。
2011-06-21 12:52:00
3712
转载 SAFEARRAY使用实例
何谓SAFEARRAY:... 1创建SAFEARRAY: 2方法一:使用SafeArrayAllocDescriptor在栈上创建一维数组... 2方法二:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建一维数组... 2方法三:使用SafeArrayAllocDescriptor和SafeArrayAllocData在
2011-06-20 14:06:00
614
原创 AfxEnableControlContainer
If this dialog has OLE controls;AfxEnableControlContainer has not been called yet.You should call it in your apps InitInstance function.
2011-06-12 17:34:00
1542
转载 raw_loadXML使用
#import using namespace MSXML2; MSXML2::IXMLDOMDocument * pXMLDoc=NULL; MSXML2::IXMLDOMNode * pXDN=NULL; BSTR file; CString x = "c://test.xml"; file=x.AllocSysString(); pXMLDoc->loadXML(file);<!--
2011-06-12 17:08:00
1826
1
转载 ArcObjects开发中的多态与类型转换问题
在ArcObjects 中,众多的对象、接口眼花缭乱,之间关系更是错综复杂。对于初学者,甚至包括一些对AO相当了解的人对如何熟练转换接口未必能够做到胸有成竹。在许多教材、手册也往往是就事论事,给出代码了事。再好点的画个模型图,都没有从根本上解释清楚接口之间、接口与类之间的转换关系。特别是对于为什么由一个接口可以得出另一个接口,许多资料只是解释为接口查询,其实这只是技术层面的问题,接口查询主要
2009-05-25 09:24:00
1279
1
原创 Inrie(洪晓军)
Inrie(洪晓军) Wake up every day with a feeling of passion for the difference technology will make in our life. 博客园 首页 新文章 新随笔 订阅 管理 联系 -->posts - 50, comments
2008-07-14 13:31:00
977
原创 设计一函数,求整数区间[a,b]和[c,d]的交集
/*二题: */ ///////////////////////////////////////// #include "stdio.h"#define BOOL int #define TRUE 1 #define FALSE 0 BOOL jiba(int *p1, int *p2,
2008-07-09 00:32:00
3830
1
原创 udp 网络应用程序
Ws2_32.lib#include #include void main(){WORD wVersionRequested;WSADATA wsaData;int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData );if
2008-06-27 10:56:00
1305
原创 TCP 的 网络应用程序的编写
/*1,计算机的名字 IP 表示 2, 协议(语义+ 语法+ 规则)不同层 不同协议 IOS 七层模型 7 , 应用层 application 6 , 表示层 Presentation 5 会话层 主机之间的通信 session 4 传输层 transport 3 网络层 network 找出最佳的传输线路 2 数据链路层 data lin
2008-06-27 10:28:00
642
原创 一是关于怎样找出和去除重复数据,这在另一个帖子利已有详细介绍。二是关于找出某一列里最大或最小的前几个,或是大于或小于某一个值(最大值或平均值)的数据
1:找出公司里收入最高的前三名员工: SQL> select rownum, last_name, salary from (select last_name, salary from s_emp order by salary desc) where rownum ROWNUM LAST_NAME SALARY ---------- -----------------
2008-06-25 16:51:00
2681
原创 vc 利用ADO 访问sql 数据库
/*#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename ("EOF","rsEOF")*/void CADOTestDlg::OnBTNQuery() { CoInitialize(NULL); _ConnectionPtr pConn(_uuidof(Co
2008-06-24 16:52:00
740
原创 wsm 非静态的方法“change.Program.ConvertStr1(string)”要求对象引用
namespace change{ class Program { static void Main(string[] args) { string line = Console.ReadLine(); string output = ConvertStr1(line);
2008-06-23 16:35:00
1313
原创 ESRI矢量数据格式简介
EESSRRII矢矢量量数数据据格格式式简简介介 ArcGIS 可以无缝地支持所有 ESRI 的数据格式:coverage、shapefile、geodatabase、grid 以及ArcIMS提供的数据,也支持三种最常用的 CAD文件格式(DXF、DWG 和 DGN)和众多常见的影像格式。下面将按照 ESRI 的发展历史,简要介绍 coverage、shapefile 和 g
2008-06-15 12:14:00
3659
1
原创 刚刚搜素到的 vc 进行单元 测试如何使用VC6进行单元测试
多数讲述单元测试的文章都是以Java为例,本文以C++为例,后半部分所介绍的单元测试工具也只介绍C++单元测试工具。下面的示例代码的开发环境是VC6.0。 产品类:class CMyClass {public:int Add(int i, int j); CMyClass(); virtual ~CMyClass(); private:int mAge; /
2008-06-14 19:07:00
793
原创 空间数据库
数据库与空间数据库2007-03-04 12:07 1. 如果说GIS行业和IT主流的差别,本质的差别在于数据库的应用。数据库可以说是整个IT行业的支柱,其优点包括数据共享、减少冗余、避免不一致、事务支持、完整性、独立性等,还有一个很好的优势,工业标准的SQL。2. 从历史
2008-06-08 06:55:00
1064
原创 ArcGis Engine 的类库(1)
不同的数据源通常有相应的图层负责数据在地图上的显示,矢量要素由 FeatureLayer 对象处理,栅格数据由 RasterLayer 对象处理,TIN数据由TinLayer对象处理,等等。必要的话,图层可以处理与之相关数据的所有绘图操作,但通常图层都是一个相关的 Renderer 对象。Renderer 对象的属性控制着数据在地图中的显示方式。Renderers 通常用Display 类库中的符
2008-06-07 12:27:00
1973
原创 ArcGis Engine 的类库
作为Arcgis 体系结构基础的System 类库 其编号为1 而 编号 7 是GeoDatabase 类库依赖其他的类库(刚刚知道)—system,systemUI, Geometry,Display,server 和 output。System 类库 System 类库是 ArcGIS 体系结构中最底层的类库。System 类库包含给构成ArcGIS的其他类库提供服务的组件。System类
2008-06-07 12:24:00
3308
1
原创 右键toc 浏览属性表
private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) { if (e.button == 2) { try {
2008-06-06 10:07:00
1000
原创 读取xml 文件
using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using System.Drawing;using System.Collections;using System.Xml;using System.IO;using System.Reflection;name
2008-06-05 07:50:00
511
原创 动态创建的按钮 以及 他们的事件
public partial class Form1 : Form { Button myButton = new Button(); public Form1() { InitializeComponent(); //////////////////////////////
2008-06-02 10:06:00
786
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人