Mr.Victor

梦里不知身是客,一晌贪欢!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年8月20日

摘要: 本实例是《杨老师之Blog——COM组件设计与应用(四)》中的实例三,本人实现后并加以注释。void CShowJPGView::OnDraw(CDC* pDC){ CShowJPGDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 ::CoInitialize(NULL); //初始化COM HRESULT hr; CFile file; file.Open("D:\\test.jpg",CFile::modeRead | CFile::shar 阅读全文

posted @ 2011-08-20 22:45 Mr-Victor 阅读(782) 评论(0) 推荐(0) 编辑

摘要: 本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/07/04/9135.html一、前言 在 VCKBASE 的顶力支持下,在各位网友回帖的鼓励下,我才能顺利完成系列论文的前三回。书到本回,我们终于开始写代码啦。写点啥那?恩,有了!咱们先从如何调用现成的简单的组件开始吧,同时也顺便介绍一些相关的知识。二、组件的启动和释放 在第三回中,大家用“小本本”记录了一个原则:COM 组件是运行在分布式环境中的 。于是,如何启动组件立刻就遇到了严重的问题,大家看这段代码: p = new 对象; p->对象函数(); delete p; 这样 阅读全文

posted @ 2011-08-20 20:59 Mr-Victor 阅读(781) 评论(0) 推荐(1) 编辑

摘要: 本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8885.html一、前言 上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的知识,将来写起程序来才会得心应手也:-) 走入正题之前,请大家牢牢记住一条原则:COM 组件是运行在分布式环境中的。比如,你写了一个组件程序(DLL或EXE),那么使用者可能是在本机 阅读全文

posted @ 2011-08-20 20:53 Mr-Victor 阅读(431) 评论(0) 推荐(0) 编辑

摘要: 本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8884.html一、前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了。那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后,又如何让 Excel 自己去读入、解析、显示 xls 数据呢?二、CLSID 概念 有一个非常简单的解决方案,那就是在对象数据的前面,保存有处理这个数据的程序名。(见下图左上)图一、CLSID 的概念 这的确是一个简单的 阅读全文

posted @ 2011-08-20 20:46 Mr-Victor 阅读(568) 评论(0) 推荐(0) 编辑

摘要: 本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8883.html一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的好学生,我开始在书店里“踅摸”(注1)有关OLE的书籍(注2)。功夫不负有心人,终于买到了我的第一本COM书《OLE2 高级编程技术》,这本800多页的大布头花费了我1/5的月工资呀......于是开始日夜耕读.... 阅读全文

posted @ 2011-08-20 19:55 Mr-Victor 阅读(445) 评论(0) 推荐(1) 编辑

摘要: 使用ODBC所需要的文件1、sql.h : 包含基本的ODBC API的定义。2、sqlext.h :包含扩展的ODBC的定义。3、odbc32.lib :库文件。例如:#include <sqlext.h>#include <sql.h>#include <odbcinst.h>#pragma comment(lib, "odbccp32.lib")#pragma comment(lib, "odbc32.lib")一、配置ODBC数据源配置ODBC数据源可以通过手动配置 和 程序自动配置 两种方式来实现。第一种:手 阅读全文

posted @ 2011-08-20 18:24 Mr-Victor 阅读(1819) 评论(0) 推荐(0) 编辑

摘要: 接口: http://dict-co.iciba.com/api/dictionary.php?w=$userSearch说明: $userSearch 为用户要查的词或短句,请使用url转码。 返回数据的格式为xml以词good为例输入:http://dict-co.iciba.com/api/dictionary.php?w=good输出:<?xml version="1.0" encoding="UTF-8"?><dict num="219" id="219" name="219& 阅读全文

posted @ 2011-08-20 18:22 Mr-Victor 阅读(5204) 评论(0) 推荐(0) 编辑

摘要: 以下未经说明,listctrl默认view 风格为report--------------------------------------------------------------------------------1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料” ----------------------------- 阅读全文

posted @ 2011-08-20 18:20 Mr-Victor 阅读(2919) 评论(0) 推荐(2) 编辑

摘要: 以下列环境为例: 主机系统为Windows XP ,在虚拟机下安装了Red Hat Enterprise Linux 5 (Server版)一、交叉编译环境的搭建 以“博创”公司提供的“魔法师”套件为例,具体用到的开发板为UP-Magic6410,交叉编译器为UP-Magic6410型开发板配套的4.3.1-eabi-armv6-up-cup6410.tar.gz,系统为虚拟机里的Linux系统。具体搭建过程如下: 1、在宿主机的/usr/local/目录下(目录可自定义)建立arm 目录存放交叉编译器 #mkdir /usr/local/arm 2、解压交叉编译器包至/usr/local/a 阅读全文

posted @ 2011-08-20 17:59 Mr-Victor 阅读(663) 评论(0) 推荐(1) 编辑

摘要: CString CXXXDlg::UTF8Convert(CString &str, int sourceCodepage, int targetCodepage){ int len=str.GetLength(); int unicodeLen=MultiByteToWideChar(sourceCodepage,0,str,-1,NULL,0); wchar_t * pUnicode; pUnicode=new wchar_t[unicodeLen+1]; memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t)); MultiByteToW 阅读全文

posted @ 2011-08-20 17:54 Mr-Victor 阅读(4121) 评论(0) 推荐(0) 编辑

摘要: 在多线程的程序中,有时需要在子线程中使用UpdateData()函数对主窗口进行更新,但是在子线程里调用UpdateData()函数是行不通的,这就需要使用自定义消息来进行线程间的通信,在此记录怎么使用自定义消息。在Visual C++中提供了WM_USER,比它大的整数可以由用户使用,比它小的整数由系统保留。 自定义消息处理的过程如下: 1、声明一个全局的常量,代码如下: const WM_xxx = WM_USER + N; 其中,WM_xxx表示自定义的消息名,N是正整数。 2、在对话框的头文件中DECLARE_MESSAGE_MAP()的前面添加下列语句: //{{AFX_MSG(CX 阅读全文

posted @ 2011-08-20 17:52 Mr-Victor 阅读(2117) 评论(0) 推荐(0) 编辑

摘要: /***********加密CString并写入文件(加法加密)************/CFile fileWrite;CString m_strEncryption = _T("需要加密的信息");int count = m_strEncryption.GetLength();BYTE* m_byteRead = new BYTE[count];BYTE* m_byteWrite = new BYTE[count*2];m_byteRead = (BYTE*)m_strEncryption.GetBuffer(count);for (int i = 0, k = 0, 阅读全文

posted @ 2011-08-20 17:48 Mr-Victor 阅读(1227) 评论(0) 推荐(0) 编辑

摘要: /***************加密***************/public void Encryption(){ FileStream fs1 = new FileStream(加密源文件的存放路径, FileMode.Open, FileAccess.Read); FileStream fs2 = new FileStream(加密后文件的存放路径, FileMode.Create); BinaryReader br1 = new BinaryReader(fs1); BinaryWriter br2 = new BinaryWriter(fs2); byte[] bys1 = br1 阅读全文

posted @ 2011-08-20 17:43 Mr-Victor 阅读(2008) 评论(0) 推荐(0) 编辑

摘要: Access允许十种数据类型:文本、备注、数值、日期/时间、货币、自动编号、是/否、OLE对象、超级链接、附件、查询向导 。 文本(Text):这种类型允许最大255个字符或数字,Access默认的大小是50个字符,而且系统只保存输入到字段中的字符,而不保存文本字段中未用位置上的空字符。可以设置“字段大小”属性控制可输入的最大字符长度。 备注(Memo):这种类型用来保存长度较长的文本及数字,它允许字段能够存储长达64000个字符的内容。但Access不能对备注字段进行排序或索引,却可以对文本字段进行排序和索引。在备注字段中虽然可以搜索文本,但却不如在有索引的文本字段中搜索得快。 数字(Num 阅读全文

posted @ 2011-08-20 17:41 Mr-Victor 阅读(8596) 评论(0) 推荐(1) 编辑

摘要: 1、打开一个Access数据库文件2、点击“创建”标签中的“查询设计”,会弹出一个“显示表”的对话框,点击“关闭”将其关闭3、这时会有一个名为“查询*”的窗口,还不能输入SQL语句4、点击左上角的“SQL视图”,这时就可在查询窗中输入SQL语句了5、SQL语句编辑完成后,点击左上角的红色感叹号即可执行SQL语句 阅读全文

posted @ 2011-08-20 17:37 Mr-Victor 阅读(5445) 评论(0) 推荐(0) 编辑

摘要: 以下代码出自《杨老师之Blog——COM组件设计与应用(四)》。地址:http://blog.vckbase.com/teacheryang/archive/2005/07/04/9135.html一、由CLSID得到ProgID(以Word为例子)void CGetProgIDFromCLSIDDlg::OnBnClickedButton1(){ ::CoInitialize(NULL); HRESULT hr; CLSID clsid = {0x209ff,0,0,{0xc0,0,0,0,0,0,0,0x46}}; LPOLESTR lpwProgID = NULL; hr = ::Pro 阅读全文

posted @ 2011-08-20 17:21 Mr-Victor 阅读(2315) 评论(0) 推荐(0) 编辑

摘要: 本文摘自:http://www.cnblogs.com/wangliang651/archive/2006/07/07/445473.html(稍作修改)有时我们需要获得某个文件夹的路径,而不是文件的路径,这时需要用API函数SHBrowseForFolder来实现。函数原型为:LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);其中LPBROWSEINFO为BROWSEINFO结构的指针。Visual C++(VC)中,BROWSEINFO结构中包含有用户选中目录的重要信息,其结构如下:typedef struct_browseinfo{ HW 阅读全文

posted @ 2011-08-20 16:33 Mr-Victor 阅读(727) 评论(0) 推荐(0) 编辑