C/C++、DLL、Makefile、VC++
conkeyn
a
展开
-
非MFC DLL
在建立的工程中添加lib.h及lib.cpp文件,源代码如下:/* 文件名:lib.h */#ifndef LIB_H#define LIB_Hextern "C" int __declspec(dllexport)add(int x, int y);#endif/* 文件名:lib.cpp */#include "lib.h"int add(int x, int ...2008-07-05 17:22:55 · 108 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(一) Win32 Static Library
http://www.pconline.com.cn/pcedu/empolder/gj/vc/index.html 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与...原创 2008-08-19 14:13:50 · 256 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(二) Win32 Dynamic-Link Library
上节给大家介绍了静态链接库与库的调试与查看(动态链接库(DLL)编程深入浅出(一)),本节主要介绍非MFC DLL。4.非MFC DLL4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Lib...原创 2008-08-19 14:23:52 · 344 阅读 · 0 评论 -
A new Michael Jackson song
<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGri原创 2009-10-12 16:48:31 · 132 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)源代码与答案
数据结构与算法分析(C语言描述)(第二版)Mark Allen Weiss著源代码与答案http://zhangjunhd.blog.51cto.com/113473/d-4原创 2009-12-14 11:44:50 · 3038 阅读 · 0 评论 -
makefile详解(1)
makefile详解 编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。...原创 2009-02-24 07:18:03 · 324 阅读 · 0 评论 -
makefile详解(2)
<!-- --><!-- --><!-- -->六、另类风格的makefile 即然我们的make可以自动推导命令,那么我看到那堆[.o]和[.h]的依赖就有点不爽,那 么多的重复的[.h],能不能把其收拢起来,好吧,没有问题,这个对于make来说很容 易,谁叫它提供了自动推导命令和文件的功能呢?来看看最新风格的mak...原创 2009-02-24 07:19:26 · 79 阅读 · 0 评论 -
makefile详解(3)
<!-- --><!-- --><!-- -->六、多目标 Makefile 的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时 依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多 个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的 可以使用一个自动化变...原创 2009-02-24 07:20:15 · 92 阅读 · 0 评论 -
makefile详解(4)
<!-- --><!-- --><!-- --><!-- -->五、定义命令包 如果Makefile中出现一些相同命令序列,那么我们可以为这些相同的命令序列定义一 个变量。定义这种命令序列的语法以“define”开始,以“endef”结束,如: define run-yacc yac...原创 2009-02-24 07:21:19 · 92 阅读 · 0 评论 -
makefile详解(5)
<!-- --><!-- --><!-- --><!-- -->二、语法 条件表达式的语法为: <conditional-directive> <text-if-true> endif 以及: <conditional-directi...原创 2009-02-24 07:22:21 · 221 阅读 · 0 评论 -
makefile详解(6)
makefile详解(6) 九、控制make的函数 make提供了一些函数来控制 make 的运行。通常,你需要检测一些运行 Makefile 时的运 行时信息,并且根据这些信息来决定,你是让make继续执行,还是停止。 $(error <text ...> ) 产生一个致命的错...原创 2009-02-24 07:23:30 · 90 阅读 · 0 评论 -
运用autoconf和automake自动生成Makefile实例讲解
运用autoconf和automake自动生成Makefile实例讲解http://hi.baidu.com/vctianya/blog/item/dd1a1c7a14118fee2e73b3c8.html 对于一个UNIX/Linux下C程序员来说,一个比较麻烦的工作就是写自己的M...原创 2009-02-24 07:30:44 · 120 阅读 · 0 评论 -
C++的11个注意要点
C++的11个注意要点http://chenl.blogbus.com/logs/532052.html 下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的。如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的C++程序员也是如此...原创 2009-02-24 07:33:23 · 90 阅读 · 0 评论 -
Linux_Unix环境下的Make和Makefile详解
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百...原创 2009-02-24 07:35:20 · 80 阅读 · 0 评论 -
VC++常用数据类型及其操作详解
http://blog.csdn.net/flxyzsby/archive/2004/08/03/60047.aspx原创 2008-08-18 23:43:52 · 125 阅读 · 0 评论 -
VC++数据类型转换大全
int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2; 一、其它数据类型转换为字符串短整型(int)itoa(i...原创 2008-08-18 23:25:09 · 499 阅读 · 0 评论 -
DLL导出变量
DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局数据,我们来看看在应用工程中引用DLL中变量的例子(单击此处下载本工程附件)。/* 文件名:lib.h */#ifndef LIB_H#define LIB_Hextern int dllGlobalVar;#endif/* 文件名:lib.cpp */#include "lib.h"#i...原创 2008-08-18 16:20:38 · 120 阅读 · 0 评论 -
makefile详解(7)
3、自动化变量 在上述的模式规则中,目标和依赖文件都是一系例的文件,那么我们如何书写一个命 令来完成从不同的依赖文件生成相应的目标?因为在每一次的对模式规则的解析时, 都会是不同的目标和依赖文件。 自动化变量就是完成这个功能的。在前面,我们已经对自动化变量有所提涉,相信你看 到这里已对它有一个感性认识了。所谓自动化变量,就是这种变量会把模式中所定义的 一系列...原创 2008-07-05 17:35:49 · 112 阅读 · 0 评论 -
#pragma 指令
#pragma指令对每个编译器给出了一个方法,在保持与c,c++语言完全兼容的情况下, 给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且 对每个编译器都是不同的。 #pragma#pragma是语言符号字符串。它是给出特有编译器指令和参量的字符序列。在 pragma后,可以编写翻译器作为预处理语言符号分析的任何文本。#pragma从属于宏扩展。...2008-07-05 18:14:12 · 168 阅读 · 0 评论 -
pragma指令简介
[align=left;]一. message 参数。 message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 当我们在程序中定义了许多宏...2008-07-05 18:17:57 · 77 阅读 · 0 评论 -
解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para 其中Para 为参数,下...2008-07-05 18:23:37 · 93 阅读 · 0 评论 -
VC文件扩展名解读大全
.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。 .BMP:位图资源文件。 .BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件...原创 2008-08-17 23:27:35 · 98 阅读 · 0 评论 -
非MFC DLL 之 DLL的调用方式
动态调用typedef int(*lpAddFun)(int, int); //宏定义函数指针类型int main(int argc, char *argv[]){HINSTANCE hDll; //DLL句柄 lpAddFun addFun; //函数指针hDll = LoadLibrary("..\\Debug\\dllTest.dll");if (hDll...原创 2008-08-18 16:05:29 · 190 阅读 · 0 评论 -
DllMain函数
Windows在加载DLL的时候,需要一个入口函数,就如同控制台或DOS程序需要main函数、WIN32程序需要WinMain函数一样。在前面的例子中,DLL并没有提供DllMain函数,应用工程也能成功引用DLL,这是因为Windows在找不到DllMain的时候,系统会从其它运行库中引入一个不做任何操作的缺省DllMain函数版本,并不意味着DLL可以放弃DllMain函数。 根...原创 2008-08-18 16:06:23 · 451 阅读 · 0 评论 -
利用VC从DLL传递消息到EXE
在进行DLL开发过程中,尤其在进行底层硬件开发过程中,比如实时接收数据,进程需要和应用程序进行交互,而DLL和应用程序最好的交互就是发消息了,在DLL中定义消息的方式和在应用程序中定义消息的方式非常相似。下面谈谈这两种定义的方法: 一、在应用程序自定义消息方法: 一般自定义消息有一定的范围,虽然说自定义消息从WM_USER开始,但是由于我们的工程里面一般还有很...原创 2008-08-18 16:07:26 · 354 阅读 · 0 评论 -
MFC规则DLL的调用
笔者编写了如图12的对话框MFC程序(下载本工程附件)来调用5.3节的MFC规则DLL,在这个程序的对话框上点击“调用DLL”按钮时弹出5.3节MFC规则DLL中的对话框。图12 MFC规则DLL的调用例子 下面是“调用DLL”按钮单击事件的消息处理函数:void CRegularDllCallDlg::OnCalldllButton() {typed...原创 2008-08-18 16:15:05 · 149 阅读 · 0 评论 -
MFC规则DLL 简单的例子
这个DLL的例子(属于静态链接到MFC 的规则DLL)中提供了一个如图11所示的对话框。(下载本工程附件):图11 MFC规则DLL例子 在DLL中添加对话框的方式与在MFC应用程序中是一样的。 在图11所示DLL中的对话框的Hello按钮上点击时将MessageBox一个“Hello,pconline的网友”对话框,下面是相关的文件及源代码,其中删除了MF...原创 2008-08-18 16:16:14 · 327 阅读 · 0 评论 -
MFC规则DLL的创建
我们来一步步讲述使用MFC向导创建MFC规则DLL的过程,首先新建一个project,如图9,选择project的类型为MFC AppWizard(dll)。点击OK进入如图10所示的对话框。图9 MFC DLL工程的创建 图10所示对话框中的1区选择MFC DLL的类别。 2区选择是否支持automation(自动化)技术,automation 允许用户在一个应用程序中操...原创 2008-08-18 16:18:48 · 199 阅读 · 0 评论 -
MFC规则DLL 概述
MFC规则DLL的概念体现在两方面: (1) 它是MFC的 “是MFC的”意味着可以在这种DLL的内部使用MFC; (2) 它是规则的 “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC。而MFC扩展DLL与应用程序的接口可以是MFC,可以从MFC扩展DLL中导出一个MFC类的派生类。 Regul...原创 2008-08-18 16:19:30 · 144 阅读 · 0 评论 -
DLL导出类
DLL中定义的类可以在应用工程中使用。 下面的例子里,我们在DLL中定义了point和circle两个类,并在应用工程中引用了它们(单击此处下载本工程附件)。//文件名:point.h,point类的声明#ifndef POINT_H#define POINT_H#ifdef DLL_FILEclass _declspec(dllexport) point //导出类...原创 2008-08-18 16:20:00 · 94 阅读 · 0 评论 -
makefile 大全
http://chenl.blogbus.com/logs/532199.html<<第 一 部 分 >> 0) 介绍 本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时候需要分,怎么才能分的好。然后将会告诉你 GNU Make ...原创 2009-02-24 07:37:07 · 108 阅读 · 0 评论