文档库 最新最全的文档下载
当前位置:文档库 › VS2008静态库和动态库的创建和调用

VS2008静态库和动态库的创建和调用

VS2008静态库和动态库的创建和调用
VS2008静态库和动态库的创建和调用

vs2008最简单可行的激活方法 破解 Win7下vs2008激活方法

vs2008最简单可行的激活方法破解Win7下vs2008激活方法 VS2008破解方法非常简单,在开始>设置>控制面版>添加或删除程序>卸载https://www.wendangku.net/doc/062985136.html,2008>出现卸载界面>点击Next>输入上面CD-key ->出现成功画面即可完美将试用版升级成为正式版。 VS2008正式版序列号CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T、 你将会看到升级成功的绿色画面,恭喜你,你的变为正版了! ---------- 但是win7下次方法行不通,因为没有输入项, 只有通过此方法: 昨天安装一个VS2008,经过1个小时的安装,终于结束了。 可是按照先前在xp或者vista下的激活方法却没有成功。于是上网找了很多篇文章。得出的结论都是以前采用的方法在Windows XP和VISTA 上是可以实现的,但是在Win7上还是有些问题。所以,Windows7的用户,还是使用下面介绍的第一种方法激活为好。 激活VS2008的方法: 方法一、没有安装VS2008,把安装文件中setup文件夹下的setup.sdb用记事本打开,查找[Product Key],把T2CRQGDKBVW7KJR8C6CKXMW3D修改为PYHYPWXB3BB2CCMV9DX9VDY8T。然后就可以开始安装了,安装完就自动激活了。 方法二、在开始>设置>控制面版>添加或删除程序>卸载https://www.wendangku.net/doc/062985136.html,2008>出现卸载界面>点击Next>输入上面CD- key ->出现成功画面即可完美将试用版升级成为正式版。普通程序都是点卸载后,就直接运行卸载,但是VS2008还有一个升级功能。但是Windows7上没有这个能力。

Visual_Studio_2010_破解

VS2010 正式版破解方法详解 转载自:https://www.wendangku.net/doc/062985136.html,/wjhuangjin/archive/2010/04/13/5482124.aspx 步骤1.下载VS2010 正式版,下载地址: 页面: https://www.wendangku.net/doc/062985136.html,/downloads/details.aspx?displaylang=en&FamilyID=06a32b1c-80e9-41d f-ba0c-79d56cb823f7 直接ISO文件地址: https://www.wendangku.net/doc/062985136.html,/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X1 6-42552VS2010UltimTrial1.iso 步骤2.安装文件完成后,点击此处(如下图2.1和2.2): (图2.1) 在卸载向导中输入序列号(如图2.2): YCFHQ-9DWCY-DKV88-T2TMH-G7BHP VS2010 SN

(图2.2) 步骤3.破解成功(图3.1): 教程二: 步骤1.同教程一下步骤1,下载源文件。 步骤2.解压到源文件,并找到setup文件夹如下图所示:

步骤3:打开setup文件夹并找到setup.sdb文件,如下图所示: 步骤4.以记事本打开setup.sdb文件,并找到: [Product Key] YR3W8FCM2B7BKF9HMQFTCH7WK 并将key替换成: YCFHQ9DWCYDKV88T2TMHG7BHP 如下图:

步骤5.破解完成,关闭所有文件,点击setup.exe按常规步骤安装即可。

静态链接库lib和动态链接库dll区别

1.什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的EXE 文件中了。但是若使用DLL,该DLL 不必被包含在最终EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与EXE 独立的DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。静态链接库与静态链接库调用规则总体比较如下。 对于静态链接库(比较简单): 首先,静态链接库的使用需要库的开发者提供生成库的.h头文件和.lib文件。 生成库的.h头文件中的声明格式如下: extern "C" 函数返回类型函数名(参数表); 在调用程序的.cpp源代码文件中如下: #include "..\lib.h" #pragma comment(lib,"..\\debug\\libTest.lib") //指定与静态库一起链接 第二,因为静态链接库是将全部指令都包含入调用程序生成的EXE文件中。因此如果用的是静态链接库,那么也就不存在“导出某个函数提供给用户使用”的情况,要想用就得全要!要不就都别要!:) 对于动态链接库: 动态链接库的使用,根据不同的调用方法,需要提供不同的资源: 1. 静态加载------程序静态编译的时候就静态导入dll,这样的话就需要提供给库 使用者(C客户)如下文件:*.lib文件和.dll文件和*.h。其有2个坏处: 1 程序一开始运行就需要载入整个dll,无法载入程序就不能开始运行; 2 由于载入的是整个dll,需要耗费资源较多 其调用方法如下: #include "..\lib.h" #pragma comment(lib,"..\\debug\\libTest.lib") 但是这种方式的话可以调用Class method. 2.动态加载-----那么只需要提供dll文件。 因此调用程序若想调用DLL中的某个函数就要以某种形式或方式指明它到底想调用哪一个函数。但是无法调用Class method了。 如果要调用Dll中的function,需要经历3个步骤: Handle h=LoadLibrary(dllName) --> GetProcAddress(h,functionName) 返回函数指针,通过函指针调用其function-->FreeLibrary(h) 例如:Another.dll有一个int Add(int x,int y)函数。则完整的调用过程如下:

GCC编译动态和静态链接库

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。 第1步:编辑得到举例的程序--hello.h、hello.c和main.c; hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。hello.h(见程序1)为该函数库的头文件。main.c(见程序3)为测试库文件的主程序,在主程序中调用了公用函数hello。 1.#ifndef HELLO_H 2.#define HELLO_H 3. 4.void hello(const char *name); 5. 6.#endif //HELLO_H 复制代码 程序1: hello.h 1.#include 2. 3.void hello(const char *name) 4.{ 5.printf("Hello %s!\n", name); 6.} 复制代码 程序2: hello.c 1.#include "hello.h" 2. 3.int main() 4.{ 5.hello("everyone"); 6.return 0; 7.} 复制代码 程序3: main.c

第2步:将hello.c编译成.o文件; 无论静态库,还是动态库,都是由.o文件创建的。因此,我们必须将源程序hello.c通过g cc先编译成.o文件。 在系统提示符下键入以下命令得到hello.o文件。 # gcc -c hello.c # 我们运行ls命令看看是否生存了hello.o文件。 # ls hello.c hello.h hello.o main.c # 在ls命令结果中,我们看到了hello.o文件,本步操作完成。 下面我们先来看看如何创建静态库,以及使用它。 第3步:由.o文件创建静态库; 静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。在创建和使用静态库时,需要注意这点。创建静态库用ar命令。 在系统提示符下键入以下命令将创建静态库文件libmyhello.a。 # ar crv libmyhello.a hello.o # 我们同样运行ls命令查看结果: # ls hello.c hello.h hello.o libmyhello.a main.c # ls命令结果中有libmyhello.a。 第4步:在程序中使用静态库; 静态库制作完了,如何使用它内部的函数呢?只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用gcc命令生成目标文件时指明静态库名,gcc将会从静态库中将公用函数连接到目标文件中。注意,gcc会在静态库名前加上前缀lib,然后追加

Fortran软件安装大全

为大家介绍fortran编译软件,和imsl库的使用,有些地址已失效,有些软件在群共享里VS破解用百度的序列号,ivf用crack文件里的许可文件(.lic)。 一.跟上时代的脚步:Visual studio2012+intel visual fortran2013, (兼容win7 64位32 位)目前是最新的组合,配合强大的vs2012编译器,全新的VS界面感触以及操作。仅这个可以跑在win8系统上。 https://www.wendangku.net/doc/062985136.html,/d/iMuvAwLMJAC8l1tR9cd 二.推荐使用IVF2011+MVS2008(兼容win7 64位32 位) 下载方案地址:https://www.wendangku.net/doc/062985136.html,/p/1536274172 mvs2008:https://www.wendangku.net/doc/062985136.html,/topics/2743184/ ivf2011:https://www.wendangku.net/doc/062985136.html,/topics/2901142/ 安装看页面评论, IVF版本自带MKL(Intel数学核心库) 三.通用版本:MVS2008+ivf11.0.061(兼容win7 64位32 位) mvs2008:https://www.wendangku.net/doc/062985136.html,/topics/2743184/ ivf11.0.061 :https://www.wendangku.net/doc/062985136.html,/topics/2746349/ 安装看页面评论, IVF版本自带MKL(Intel数学核心库) 四.IMSL6.0下载地址:https://www.wendangku.net/doc/062985136.html,/post-310268.html(下载32位的IMSL库)安装方法:https://www.wendangku.net/doc/062985136.html,/s/blog_6c7caddf0100n8up.html(仔细认真看) 安装参考:https://www.wendangku.net/doc/062985136.html,/html/kaifa/281/2011/09/024*********.htm 这个imsl6.0只支持第三个fortran版本组合。 五.大名鼎鼎的CVF了,自带IMSL库,在群共享里,跑在xp上,win7可能不兼容。

lib和dll文件的区别和联系

(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。 (3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。从上面的说明可以看出,DLL和.LIB文件必须随应用程序一起发行,否则应用程序将会产生错误。 一、开发和使用dll需注意三种文件 1、 dll头文件 它是指dll中说明输出的类或符号原型或数据结构的.h文件。当其它应用程序调用dll时,需要将该文件包含入应用程序的源文件中。 2、 dll的引入库文件 它是dll在编译、链接成功后生成的文件。主要作用是当其它应用程序调用dll时,需要将该文件引入应用程序。否则,dll无法引入。 3、 dll文件(.dll) 它是应用程序调用dll运行时,真正的可执行文件。dll应用在编译、链接成功后,.dll文件即存在。开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,不必有.lib文件和dll头文件。 动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。 动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。 使用动态链接代替静态链接有若干优点。DLL 节省内存,减少交换操作,节省磁盘空间,更易于升级,提供售后支持,提供扩展 MFC 库类的机制,支持多语言程序,并使国际版本的创建轻松完成。 lib与dll文件最大区别在调用方面 dll可以静态陷入 lib与DLL 从这一章起,我讲述的内容将特定于windows平台。其实这篇文章也可看作是我在windows下的开发经验总结,因为以后我决定转unix了。 前面有一章说编译与链接的,说得很简略,其实应该放到这一章一块儿来说的。许多单讲

FORTRAN静态库动态库的生成

FORTRAN静态库、动态库的生成、维护与调用 闫昊明2006-9-10 一、FORTRAN静态库的生成与维护 FORTRAN 静态库是经过编译的代码块,它与主程序相对独立,可以被主程序调用,是FORTRAN工程类型之一. 静态库包含一系列子程序,但不包括主程序. 静态库一般具有LIB扩展名并包含目标代码,且静态库存放在它们特定的目录中. FORTRAN静态库在组织大型程序和在不同程序之间共享子程序等方面具有较大的优点,其重要性不言而喻. 当将静态库与主程序联系起来时,在主程序中调用静态库中的任何子程序将编译到相应的可执行程序. 应用静态库的时候,只有所需要的子程序才在编译过程中插入到可执行文件(.EXE),这意味着这种可执行文件将比包含所有的子程序所生成的可执行文件小. 而且,不必担心哪些子程序是需要的,哪些是不需要的,编译器将替你做出选择. 同时,当更改静态库中的子程序时,相应的应用程序可以不做任何改变,而只需要对其进行重新的编译链接,即可获得新的结果,这无疑也是方便的. 目前,常用的FORTRAN静态库有很多种,WINDOWS操作系统下的Compaq Visual FORTRAN version 6.5(简称CVF65)自带的数学统计库IMSL就是一个非常全面的静态库,可以用来解决线性代数和统计学上的很多经典问题. 此外,在NCAR互联网站有很多有用的FORTRAN子程序(网址:https://www.wendangku.net/doc/062985136.html,/softlib/mathlib.html),其中包括地球物理科学问题、离散和快速Fourier变换、可分离的椭圆微分方程、插值、Legendre多项式、普通数学问题、本征值问题求解、线性方程求解、非线性方程求解、常微分方程求解、特殊函数、统计学等常用子程序集等. 这些FORTRAN子程序可以解决很多基础性的问题,因此有很高的利用价值. 在WINDOWS操作系统下,可以用两个命令分别生成静态库. 一个是用‘nmake’命令,它一般用来编译原来应用在UNIX环境下的FORTRAN子程序集,在编译过程中要读取makefile文件中的编译命令,类似于在UNIX下安装软件. 另一个是用‘lib’命令,它可以在WINDOWS环境下编译任何需要集成为静态库的子程序集. 编译静态库在DOS命令行环境下比较方便,以后的命令行都指在此环境下运行. 在编译静态库前,首先要安装CVF65,其次要完成要编译的FORTRAN子程序(*.f90). 对于FORTRAN子程序,最好用FORTRAN90的标准来完成,应该放弃FORTRAN77标准。FORTRAN90是FORTRAN语言从结构化走向面向对象化的重要一步,使FORTRAN语言更加接近C++。在FORTRAN90标准中,对数组的操作既增强了功能又简化了使用,此外自由格式、MODULE、动态数组、指针等的应用大大丰富了FORTRAN语言,使得编程更加轻松。目前,FORTRAN95和FORTRAN2000标准也在应用,它们与FORTRAN90标准比较类似,主要的改进在并行运算方面,因此目前在单机上应用的主要还是FORTRAN90. 在DOS命令行环境下,进入到FORTRAN子程序所在的子目录,然后按下面两个步骤生成FORTRAN静态库. (1)键入“df *.f90 /c”,回车,可以看到CVF65编译器对所有的FORTRAN子程序(*.f90)进行编译,生成*.obj文件(注意,编译时,/c中的“c”必须小写). (2)键入“lib *.obj /out:libname.lib”,回车,可以看到链接生成libname.lib静态库. 需要注意的是,每次加入新的子程序或对静态库中的子程序修改以后,都要按上述两个步骤重新进行编译链接. 生成静态库以后,可用“dumpbin /linkermember libname.lib”来查看静态库中可用的子程序名称. 也可执行“lib /list libname.lib”来查看静态库中的*.obj文件. 当然,也可以在CVF65集成环境下,生成静态库. 步骤如下:

Visual Studio 2010 Register Code

Visual Studio 2010 下载,安装,激活,序列号,注册码,下载地址(全集) 附Visual Studio 2008下载地址激活sp1下载 Visual Studio 2010 激活码Visual Studio 2010注册码 YCFHQ-9DWCY-DKV88-T2TMH-G7BHP 破解方式:Product Key为YCFHQ9DWCYDKV88T2TMHG7BHP,用这个key替换安装盘中setup目录中的setup.sdb中[Product Key]的内容,重新保存即可,这是针对Visual Studio 2010 Ultimate版,其他版本的应该也适用,之后的安装就一路顺风了 custom fabric 1、Microsoft Visual Studio 2010 Ultimate的安装与下载 标题:Microsoft Visual Studio 2010 Ultimate – ISO 文件名:X16-42552VS2010UltimTrial1.iso 容量:2283.0 MB SHA-1: 0×8371f6a8d090063fcc320617e94854374633df3c 网页地址:https://www.wendangku.net/doc/062985136.html,/downloads/details.aspx?FamilyID=06a32b1c-80e9-41df-ba0c-79d56cb823f7&displaylang=en 下载地址:https://www.wendangku.net/doc/062985136.html,/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X16-42552VS2010UltimTrial1.iso 2、Microsoft Visual Studio 2010 Ultimate的注册与破解 Help->Register Product-> 注册码YCFHQ-9DWCY-DKV88-T2TMH-G7BHP Visual Studio 2010 下载地址Visual Studio 2010 下载Visual Studio 2010 中文下载 专业版(Professional) https://www.wendangku.net/doc/062985136.html,/download/4/0/E/40EFE5F6-C7A5-48F7-8402-F3497FABF888/X16-42555VS2010ProTrial1.iso 高级版(Premium) https://www.wendangku.net/doc/062985136.html,/download/F/F/8/FF8C8AF1-D520-4027-A844-8EC7BC0FB27C/X16-42546VS2010PremTrial1.iso 旗舰版(Ultimate) https://www.wendangku.net/doc/062985136.html,/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X16-42552VS2010UltimTrial1.iso 测试专业版(Test Professional) LicenseKey注册码=6F0510EB-FF8F-47ec-96E1-78FB4B955330 Visual Studio 2010 Professional 官方试用版内置序列号: [Product Key]序列号 Q49M2-C79JF-QP93Q-WX9GJ-6TKKD Visual Studio 2010 Professional 正式序列号:(已安装测试可用。Professional版与Ultimate版均测试通过!) YCFHQ-9DWCY-DKV88-T2TMH-G7BHP

编译生成动态库时,被关联的静态库会被编译到动态库里面

动态库调用静态库. 生成动态库: 需要的目标文件得用-fPIC选项生成. 而静态库所需的目标文件可以不用-fPIC选项. 一个应用程序调用动态库, 而这个动态库其中的函数调用某静态库时,如何生成应用程序呢? 例: /////// static.h void static_print(); ///////static.cpp #include #include "static.h" void static_print() { std::cout<<"This is static_print function"< #include "shared.h" #include "static.h" void shared_print() { std::cout<<"This is shared_print function"; static_print(); } ////////test.cpp #include "share.h" int main() { shared_print(); return 0; } 方法一: 静态库的.o文件也用-fPIC生成. 生成动态库时把静态库加入. 生成应用程序时只加载动态库 g++ -c -fPIC static.cpp // 生成static.o ar -r libstatic.a static.o // 生成静态库libstatic.a g++ -c -fPIC shared.cpp // 生成shared.o g++ -shared shared.o -lstatic -o libshared.so // 生成动态库libshared.so 注: -shared是g++的选项,与shared.o无关. -lstatic选项把libstatic.a的函数加入动态库中. g++ test.cpp -lshared -o test.exe // link libshared.so 到test.exe中. 方法二: 静态库的.o文件不用-fPIC生成. 生成动态库时不加静态库. 生成应用程序时加载动态库和静态库. g++ -c static.cpp // 生成static.o ar -r libstatic.a static.o // 生成静态库libstatic.a g++ -c -fPIC shared.cpp // 生成shared.o g++ -shared shared.o -o libshared.so // 生成动态库libshared.so 注: -shared是g++的选项,与shared.o无关. 这时如果加-lstatic. error:relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

Visual Studio 说明

Visual Studio Ultimate with MSDN Ultimate 代表着Visual Studio 所提供的最佳产品。专为企业级开发而创建,Visual Studio Ultimate with MSDN 可以帮助您的团队处理高可用性、性能、伸缩和复杂度等需求。它提供了提高工作效率和生成高质量应用程序所需的高级工具以及所有软件、服务和资源。 90 天免费试用 还等什么?马上下载Visual Studio Ultimate 2013,开始90 天免费试用。 立即获取 ?概述 ?功能 ?系统要求 ?定价 关键 IDE 功能 ?在上下文中快速获取所需信息 ?即使在生产中也能使用IntelliTrace 进行历史调试 ?在生产中进行测试以确保可伸缩性和性能 ?使用UML 图直观显示应用程序结构 ?说明并强制结构依赖关系 ?使用工具了解现有代码中的关系 Visual Studio Online

对于可添加到Visual Studio Online 帐户的Ultimate 用户没有数量限制。如果您没有Visual Studio Online 帐户,可以创建一个,这样就可以访问敏捷项目组合管理、Web 测试用例管理、团队聊天室和云负载测试等企业功能。 MSDN 权益 内含的MSDN 订阅使您能够访问数千种Microsoft 产品和额外的服务,为您提供在多种平台(包括Windows Azure)上设计、开发和测试应用程序的全部所需。 功能 在上下文中快速获取所需信息 CodeLens 在代码编辑器中提供了平视显示功能,您可以快速了解所处理的代码。一眼就可以看到您所修改或调查的方法是否打断了任何单元测试,您也可以联系代码作者,直观地了解引用和依赖关系,查看相关Bug 和最近所做的更改。所有答案都从一处获得,只需单击一次,无需切换上下文。 即使在生产中也能使用 IntelliTrace 进行历史调试 IntelliTrace 历史调试程序通过记录文件和注册表访问、异常、方法调用和其他状态信息,消除了“无法重现”的Bug 情景,即使错误已经发生,您也可以后退代码执行并重现精确的错误条件。此外,还可以将IntelliTrace 收集器部署到生产服务器中来快速诊断生产问题,您还可以从Microsoft System Center 2012 事件中导出收集器,创建丰富的可操作工作项来促进操作与部署之间的沟通。 在生产中进行测试以确保可伸缩性和性能 使用高级测试工具,您可以应用基于常量、步骤或目标的负载模式进行负载测试。以可以快速识别趋势和问题的多种方式分析和解释测试结果。不限数量的测试节点(包括支持不限数量虚拟浏览器的Web 应用程序),可以在企业规模进行测试。您可以使用现有基础结构,也可以连接Visual Studio Online,仅对所用资源支付费用。 使用 UML 图直观显示应用程序结构 UML 2.0 兼容的图有助于您设计、了解和讨论软件系统。Visual Studio Ultimate with MSDN 支持创建活动、用户用例、序列、类和组件图。您也可以创建定义系统结构的层关系图。 说明并强制结构依赖关系

C语言程序静态库和动态库的创建及其应用

C语言程序静态库和动态库的创建及其应用 在用c写程序时,很多时候需要存储一些简单的数据,如果为此而用mysql数据库就有些大才小用了,可以把这些数据以结构的形写入文件,然后再需要时读取文件,取出数据。 如下是定义函数的源文件和头文件: 源文件struct.c: #include "struct.h" //第一个参数是要写入的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示写入成功,返回FALSE表示写入失败int writeStruct(const char *fileName,char *buffer,int bufferLen,char *mode){ int ret; FILE *fileID = NULL; fileID = fopen(fileName,mode); if (fileID == NULL){ perror("fopen"); goto writeEnd; } rewind(fileID); ret = fwrite(buffer,bufferLen,1,fileID); if (ret <= 0){ perror("fwrite"); goto writeEnd; } if (fileID != NULL){ fclose(fileID); fileID = NULL; } return TRUE;

writeEnd: if (fileID != NULL){ fclose(fileID); fileID = NULL; } return FALSE; } //第一个参数是要读取的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示读取成功,返回FALSE表示读取失败int readStruct(const char *fileName,char *buffer,int bufferLen,char *mode){ int ret; FILE *fileID = NULL; fileID = fopen(fileName,mode); if (fileID == NULL){ perror("fopen"); goto readEnd; } rewind(fileID); memset(buffer,0,sizeof(buffer)); ret = fread(buffer,bufferLen,1,fileID); if (ret >= 0){ strcat(buffer,"\0"); }else{ perror("fread") ; goto readEnd; } if (fileID != NULL){ fclose(fileID); fileID = NULL; }

WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)

WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装) 时间:2014年11月22日 1.准备工作 1.1下载QGIS源码 Qgis源码可在官网https://www.wendangku.net/doc/062985136.html,上下载,当前的最新版本是Qgis2.6.0版本。 1.2下在Visual Studio 2008 Pro 下载离线破解版 1.3下载Qgis编译所需的依赖工具 1.3.1 CMake Qgis跟大多数开源工程一样,也是采用Cmake编译的。CMake的版本要求 CMake >= 2.8.0,本人采用CMake2.8.12。 下载地址:https://www.wendangku.net/doc/062985136.html,/files/v2.8/cmake-2.8.12.2-win32-x86.exe 1.3.2 flex&bison flex和bison目前提供的window安装包版本太老,截至2013年Windows 安装包flex 的版本是 2.5.4a(https://www.wendangku.net/doc/062985136.html,/downlinks/flex.php),而最新的flex 版本是 2.5.37;Windows安装包bison的版本是 2.4.1(https://www.wendangku.net/doc/062985136.html,/downlinks/bison.php),而现在最新的bison版本是3.0。对于Qgis2.6.0不能采用目前提供的flex和bison的windows 安装包(Qgis1.8.0之前的版本是可以的,编译的时候会出现问题,后面细说)。 既然flex和bison的windows 安装包不能用,那该怎么办呢?有两种解决思路: a)下载flex2.5.37和bison 3.0的源码,通过Cygwin或Mingw安装;(有点麻烦,本人 木有试~) b)从sourceforge上下载最新版的Win flex-bison安装包win_flex_bison-latest.zip,本人下载 的版本包含win_flex2.5.37和win_bison3.0,不需要安装,直接将安装包解压到指定目录,确保目 录中没有空格,本人的目录为C:\GnuWin32\win_flex_bison。(注意:最新的Win flex-bison在 vs2008中还不能直接使用,在vs2010中是可以直接使用的,由于本人安装了VS2008,所以还得进行一系列规则配置,后面细说) 1.4下载编译所依赖的库 第三方库是通过OSGEO4W提供的,首先下载OSGEO4W安装包 https://www.wendangku.net/doc/062985136.html,/osgeo4w/osgeo4w-setup-x86.exe (32bit)

使用Automake生成Makefile及动态库和静态库的创建

使用Automake生成Makefile及动态库和静态库的创建使用Automake 创建和使用静态库 1. 目录结构如下: [c-sharp]view plaincopy 1.example 2.|——src 目录(存放源代码文件) 3. |——hello.c 4.|——lib 目录(存放用来生成库的文件) 5. |——test.c 用来生成静态库libhello.a 6.|——include 目录(存放程序中使用的头文件) 7. |——hello.h 2. 编写的各个目录下的源文件 [c-sharp]view plaincopy 1.hello.h 文件 2.extern void print(char *); 3.test.c 文件 4.#include 5.void print(char *msg) 6.{ 7.print(“%s/n”, msg); 8.} 9.hello.c 文件 10.#include “hello.h” 11.int main() 12.{ 13.print(“Hello static library!”);//这里用到的是静态库中的函数 14.return 0; 15.} 3. 编写lib/Makefile.am 文件

[c-sharp]view plaincopy 1.noinst_LIBRARIES=libhello.a 2.libhello_a_SOURCES=test.c 3.AUTOMAKE_OPTIONS=foreign 第一行noinst 表示生成的是静态库,不需要make install ,直接制定它的位置和名字就 可以使用。 第二行表示用来生成静态库的源文件。如果要把静态库生成到其他地方,可以在=后面 加上路径(建议用绝对路径,并将所要用到的静态库生成在同一个文件夹下,如lib)。 第三行AUTOMAKE_OPTIONS 是Automake 的选项。Automake 主要是帮助开发 GNU 软 件的人员来维护软件,所以在执行Automake 时,会检查目录下是否存在标准GNU 软件中 应具备的文件,例如 'NEWS'、'AUTHOR'、 'ChangeLog' 等文件。设置为foreign 时,Automake 会改用一般软件的标准来检查。如果不加这句的话,需要在autoconf之前,先执行touch NEWS README AUTHORS ChangeLog 来生成'NEWS'、'AUTHOR'、 'ChangeLog' 等文件4. 编写src/Makefile.am 文件 [c-sharp]view plaincopy 1.AUTOMAKE_OPTIONS=foreign 2.INCLUDES= -I../include 3.bin_PROGRAMS=hello 4.hello_SOURCES=hello.c 5.hello_LDADD=../lib/libhello.a 第二行指定头文件的位置,-I 是idirafter 的缩写。../include 指定头文件的位置,..是上 一级目录,也就是这里的example 目录。 第三行指定生成可执行文件名hello,在这里可执行文件生成在src 下,建议将可执行文 件生成到一个特定的文件夹下,让它和源代码分开,如/root/test 目录下。写法为: [c-sharp]view plaincopy 1.bin_PROGRAMS=/root/test/hello,后面的第四、五行也相对应地变为: 2._root_test_hello_SOURCES=hello.c 3._root_test_hello_LDADD=../lib/libhello.a

VC++动态链接库创建和调用全过程详解

1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。 对动态链接库,我们还需建立如下概念: (1)DLL 的编制与具体的编程语言及编译器无关 只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用。譬如Windows提供的系统DLL(其中包括了Windows的API),在任何开发环境中都能被调用,不在乎其是Visual Basic、Visual C++还是Delphi。 (2)动态链接库随处可见 我们在Windows目录下的system32文件夹中会看到kernel32.dll、user32.dll和gdi32.dll,windows的大多数API都包含在这些DLL中。kernel32.dll中的函数主要处理内存管理和进程调度;user32.dll中的函数主要控制用户界面;gdi32.dll中的函数则负责图形方面的操作。 一般的程序员都用过类似MessageBox的函数,其实它就包含在user32.dll这个动态链接库中。由此可见DLL对我们来说其实并不陌生。 (3)VC动态链接库的分类 Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、MFC Regular DLL(MFC规则DLL)、MFC Extension DLL(MFC扩展DLL)。 非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。 由于本文篇幅较长,内容较多,势必需要先对阅读本文的有关事项进行说明,下面以问答形式给出。 问:本文主要讲解什么内容? 答:本文详细介绍了DLL编程的方方面面,努力学完本文应可以对DLL有较全面的掌握,并能编写大多数DLL程序。 问:如何看本文? 答:本文每一个主题的讲解都附带了源代码例程,可以随文下载(每个工程都经WINRAR压缩)。所有这些例程都由笔者编写并在VC++6.0中调试通过。

VS2010序列号

YCFHQ-9DWCY-DKV88-T2TMH-G7BHP输入序列号就可以了 方法一:在控制面版的在卸载向导中输入序列号 YCFHQ-9D WCY-DKV88-T2TMH-G7BHP, 方法二:解压ISO后找到setup\setup.sdb,用笔记本打开,找到: [Product Key] YR3W8FCM2B7BKF9HMQFT CH7WK 并将key替换成: YCFHQ9D WCYDKV88T2TMHG7BHP VS2010破解版下载:visual studio2010简体中文正式旗舰版破解版下载(附序列号) 2010-12-30 11:16 MSDN VS2010 Ultimate 简体中文正式旗舰版破解版下载(附序列号) 下载方法:复制地址->在迅雷新建下载任务->粘贴->完成! visual studio 2010正式发布不久后,就已经有朋友放出了所有版本的下载,这些版本均已经破解,下载后直接安装即已激活。详细如下(使用迅雷或电驴等BT工具下载即可): MSDN Professional包含Key(简体中文版本): ed2k://|file|cn_visual_studio_2010_professional_x86_dvd_532145.iso|25 91844352|6001253431AFE573E4344F5A0B1D9CAC|/ MSDN Ultimate包含Key(简体中文版本)【此为旗舰版,推荐下载该版本】:ed2k://|file|cn_visual_studio_2010_ultimate_x86_dvd_532347.iso|268598 2720|4AE6228933DDE49D9BFA4C3467C831C2|/ MSDN Team Foundation Server包含Key(简体中文版本): ed2k://|file|cn_visual_studio_team_foundation_server_2010_x86_x64_dvd _531909.iso|1963589632|C9C77B2707DF100621B3FB653C285524|/ MSDN Team Foundation Server包含Key(繁體中文版本): ed2k://|file|ct_visual_studio_team_foundation_server_2010_x86_x64_dvd _531915.iso|1966714880|D6BD12D5B693E7EDA545D52FB54CC8E5|/ MSDN Ultimate包含Key(繁體中文版本): ed2k://|file|ct_visual_studio_2010_ultimate_x86_dvd_532348.iso|269133 0048|BF50926EAB061C7D0D92580F4132F9EA|/ MSDN Professional包含Key(英文版本): ed2k://|file|en_visual_studio_2010_professional_x86_dvd_509727.iso|23 51316992|D395B6381AC129209EE80D9BED4BA5F1|/ MSDN Ultimate包含Key(英文版本): ed2k://|file|en_visual_studio_2010_ultimate_x86_dvd_509116.iso|244695 0400|0694CFA0756D8C11499DE5B42E205410|/ MSDN Premium包含Key(英文版本): ed2k://|file|en_visual_studio_2010_premium_x86_dvd_509357.iso|2439485 440|C72F6195CAC0932AA5B6861AE863FDBC|/ MSDN Express包含Key(英文版本): ed2k://|file|en_visual_studio_2010_express_x86_dvd_510419.iso|7273512

相关文档
相关文档 最新文档