VC++6.0环境中使用LIB与DLL文件
关于vc++6.0安装配置MPI
关于在vc++6.0中安装配置MPI1、下载安装MPICH,安装过程中最好把密码设置为自己的开机密码关于安装完成后设置对MPICH2的wmpiregister.exe 设置用户名密码,是计算机名和开机密码可以来个简单的测试,打开wmpirexec.exe 在application中添加Program Files (x86)\MPICH2\examples中例子,选中“run in an separate window”然后点击execute…(如果有问题,有可能是wmpiregister.exe用户名设置的问题)现在设置vc++6.0------------------------------------------------------------------2、打开vc++6.0 在(工具-选项-目录)把mpich相对应的include和lib添加到include files/library files3、新建一个工程,可以写mpitest.cpp,为了避免宏定义冲突,在#include”mpi.h”之前要加入#include MPICH_SKIP_MPICXX(这样就可以通过编译)4、编译通过了,但是链接仍然会出错继续设置(在工程—>设置->链接中的对象/库模板块后加入mpi.lib)上图这样就可以通过链接了(每次建工程都要加入mpi.lib的操作)再贴一个简单的例子吧#define MPICH_SKIP_MPICXX#include "mpi.h"#include <stdio.h>#include <math.h>double f(double);double f(double a){return (4.0 / (1.0 + a*a));}int main(int argc,char *argv[]){int done = 0, n, myid, numprocs, i;double PI25DT = 3.141592653589793238462643;double mypi, pi, h, sum, x;double startwtime = 0.0, endwtime;int namelen;char processor_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&numprocs);MPI_Comm_rank(MPI_COMM_WORLD,&myid);MPI_Get_processor_name(processor_name,&namelen);/*fprintf(stdout,"Process %d of %d is on %s\n",myid, numprocs, processor_name);fflush(stdout);*/while (!done) {if (myid == 0) {fprintf(stdout, "Enter the number of intervals: (0 quits) ");fflush(stdout);if (scanf("%d",&n) != 1) {fprintf( stdout, "No number entered; quitting\n" );n = 0;}startwtime = MPI_Wtime();}MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);if (n == 0)done = 1;else {h = 1.0 / (double) n;sum = 0.0;for (i = myid + 1; i <= n; i += numprocs) {x = h * ((double)i - 0.5);sum += f(x);}mypi = h * sum;MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);if (myid == 0) {printf("pi is approximately %.16f, Error is %.16f\n",pi, fabs(pi - PI25DT));endwtime = MPI_Wtime();printf("wall clock time = %f\n", endwtime-startwtime);fflush( stdout );}}}MPI_Finalize();return 0;}。
解决方案-VisualStudio生成库(DLLLIB)以及如何调用
解决方案-VisualStudio生成库(DLLLIB)以及如何调用
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
问题说明
使用VS编程时,一般会根据不同的场景需求将类封装成库文件,以供他人使用,比如我作为算法工程师会将算法库打包,然后供软件工程师调用;那么如何利用VS进行库(动态库和静态库)的生成呢,本文将为你详细讲解。
具体流程
1)打开VS,随便创建一个项目:
图1 创建项目
2)将需要封装的类放进去,头文件和源文件:
图2 放入类文件
3)项目->属性,选择Release或者Debug,64位或者32位,点击配置类型为dll就是动态库,lib就是静态库:
图3 配置动态库
图4 配置静态库
4)设置好点击生成解决方案,就生成了对应的DLL或者LIB:
图5 生成解决方案
5)库文件处于当前项目的X64文件下,32位则处于当前项目下:
图6 库文件所在位置
6)创建测试项目,可以通过设置包含目录的方式,也可以直接把头文件放入当前项目下:
图7 导入头文件
7)链接库:
图8 链接库
8)调用库函数的效果,该函数为巴特沃斯低通滤波:
图9 原图
图10 效果图
以上就是“使用Visual Studio生成库(DLL&LIB)以及如何调用”的方案。
详细的调用第三方库的方法见下文:
解决方案-Visual Studio设置通用配置(包含路径+依赖库)_翟天保的博客-CSDN博客
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!。
VC6.0中,创建、调用 dll
[动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。
函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
DLL 还有助于共享数据和资源。
多个应用程序可同时访问内存中单个DLL 副本的内容。
动态链接库(Dynamic Link Library或者Dynamic-link library,缩写为DLL),是微软公司在微软视窗操作系统(即Windows操作系统)中实现共享函数库概念的一种方式。
这些库函数的扩展名是.DLL、.OCX(包含ActiveX控制的库)或者.DRV(旧式的系统驱动程序)。
动态链接库缩写为DLL,在电脑中可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。
例如,您有一个大型网络游戏,如果把整个数百MB 甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库(DLL)中,您无需重新生成或安装整个程序就可以应用更新。
]1.使用VC6.0 生成DLL新建项目“Win32 Dynamic-Link Library”,输入项目名称,确定后选择“A simple DLL project”点击“完成”。
以下为cpp文件自动生成的代码:#include "stdafx.h"BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){return TRUE;}编辑cpp文件:在#include "stdafx.h"的下一行加入extern "C" __declspec(dllexport) int fun(int a, int b);/*这是C格式导出函数;这种写法一般用在C++写的DLL中,指按C的规则导出这个函数,否则导出的函数会很怪; 加上extern "C" 表示按标准C格式导出函数.如果去掉仅兼容C++;其中int fun(int a, int b) 这部分代码是我们想用dll 实现的函数原型声明如果还想加入其他的可以继续加入extern "C" __declspec(dllexport) int fun1(int a, int b);*/DllMain 是DLL 的默认入口函数,类似于C语言的main函数,该例子无需修改此处,在DllMain 的后面加入:int fun(int a,int b){return a+b;}这就是我们想用DLL 实现的函数的定义,build 之后就会在debug 目录下生成我们想要的dll 文件2.调用DLL新建一个Win32 Console Application 工程,把刚才生成的dll 文件拷贝到工程的根目录下在stdafx.h 文件中加入:#include <windows.h>编辑cpp文件:#include "stdafx.h"typedef int (*PFUN)(int,int);void main(){HMODULE hModule = ::LoadLibrary("dlltest.dll");PFUN newfun = (PFUN)::GetProcAddress(hModule,"fun");int i = newfun(1,2);printf("The result is %d\n",i);::FreeLibrary(hModule);}然后,运行就可以看到结果了转VC6.0下调用Dll文件提供的函数接口和全局变量函数接口:首先把生成的Dll文件(如RegularDll.dll和RegularDll.lib)拷贝到当前工程所在文件夹,调用有两种方法:1)动态方法:使用LoadLibrary和GetProcAddress等函数,例typedef void (*lpFun)(void);HINSTANCE hDll;hDll = LoadLibrary("RegularDll.dll");if (NULL==hDll) {MessageBox("Dll load failed!");}lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");if (NULL == pShowDlg) {MessageBox("Load function \"ShowDlg\" failed!");}pShowDlg();*/2)静态声明方法:创建Dll的工程中,函数声明和定义时用_stdcall 修饰,例void _stdcall ShowDlg(void){...}在调用dll的工程的文件中,在文件头部声明库和函数,如下例#pragma comment(lib,"RegularDll.lib")void _stdcall ShowDlg(void);调用时直接ShowDlg()就可以了。
如何在编译器(vs2013)里设置调用别人写好的lib和dll步骤
如何在编译器(vs2013)里设置调用别人写好的lib和dll步骤:1.Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程.)(若不设置,编译报错:无法打开***文件) 2.Project->properties->c/c++->general->additional include directories 添加包含文件 Project->properties->linker->general->additionallibrary directories 添加库文件 Project->properties->linker->input->additional additional dependencies添加用到的lib (这一步也可以在代码中显示调用 #pragma comment(lib, "***.lib") )(若不添加,连接报错:无法解析的外部符号) 3.将dll文件拷贝到工程debug文件下(如果不拷贝,编译链接不报错,运行报错:无法找到***.dll)切记第三条,附: DLL与LIB文件的区别共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。
一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。
共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。
静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。
VC++6.0使用手册(史上最全)
图1-1Visual C++界面开项目工作区文件时其他文件随即会自动打开。
在此文件夹下还会创建 Res(资源)、Debug(调试)、Release(发行)等子文件夹。
2.2编辑 在编辑窗口打开、浏览文件、输入、修改、复制、剪切、粘贴、查找、替换、撤销等操作,可以通过菜单完成,也可以通过工具栏按钮完成,这些与 Word 之类的 windows 编辑器用法完全相同,这里就不再重复叙述了。
2.3辅助VC 不仅提供了“语法着色”帮助我们阅读程序,还可以通过一些快捷键检查常见的括号不匹配错误。
MSDN 也可以在编辑过程中提示存在的变量名、函数名。
很多程序员借助类似 Visual Assist X 的工具辅助开发,减少程序出错的可能性。
3.开发 C 程序3.1开发单个 C 语言程序1. 创建一个工作文件夹。
由于开发过程会产生一系列文件,建议每开发一个新的 C 程序都创建一个工作文件夹。
还可以将所有工作文件夹集中到一起,如E:\LXH\EX01-01 、E:\LXH\EX03-02 等。
2. 启动 Visual C++。
3. 新建一个 C 语言源程序。
选择菜单:File 下的 New 菜单项,出现如图 1-2 所示 new(新建)对话框。
图1-2选择菜单File下的New菜单项选择 Files标签下的 C++Source File 在“E:\LXH\EG01-01”文件夹中创建C 程序:eg01-01.c,如图 1-3 所示。
图1-3Files标签4. 输入、编辑源程序。
注意不要输入中文标点符号,要及时按 Ctrl+S 保存文件,如图 1-4 所示。
图1-4输入源程序5.编译、连接。
点击“BuildMiniBar”工具栏上的“Build”按钮进行编译、连接。
也可以选择菜单 Build 下的 Build (F7) 菜单项或Rebuild All菜单项。
更简捷的方法是直接按 F7 功能键。
Visual C++将提示创建默认工作区,如图 1-5 所示。
vc6.0+IDE编译64位程序
Vc6.0 IDE实现32位程序编译产生64位应用程序环境要求如下:Microsoft Platform SDK 2001 年 11 月版或更高版本Visual C++ 6.0步骤一:安装最新适合xp的SDK通过双击SDK文件夹下面的Setup.Exe安装Microsoft Platform SDK 到硬盘任意目录后,安装程序会在开始菜单中生成Microsoft Platform SDK的快捷方式。
单击"start->All Programs->Microsoft Platform SDK for Windows Sever 2003 SP1->Open Build Environment Window->Set Windows XP 64 Build Environment->Set Windows XP 64 Build Environment (Debug) 此时将显示一个控制台窗口,其中带有为 64 位内部版本设置的内部版本环境。
步骤二:从64位内部版本环境启动Visual C++6.0:启动Microsoft Platform SDK后,直接在命令行输入msdev/useenv,此时将显示 Visual C++ 6.0 IDE,其中已经为 64 位内部版本环境设置了 include、library 和 executable 目录。
(如果 Msdev.exe 不在路径中,请将文件夹更改到\Microsoft Visual Studio\Common\Msdev98\Bin 文件夹,然后运行msdev/useenv)Visual C++启动成功后,可以通过菜单Tools->Options->Directories查看Include files和Library file的默认路径应为Microsoft Platform SDK文件夹下的include和lib文件夹,此时为打开正确的64位虚拟编译环境。
VC++6.0 中使用libUsb库进行Hid USB设备通讯
VC++6.0 中使用libUsb库进行Hid USB设备通讯1、首先在/wiki/libusb-win32#下载得到libusb-win32库和一些例子,插上需通讯的HID USB设备,打开下载的库,里面有个可执行文件,运行它,根据提示(注意PID和VID选好你所插的设备)生成inf文件并安装它。
2、完成上一步就可以打开vc++6.0 开发应用程序和HID USB设备通讯了,注意要把与刚才生成的inf文件同文件夹下的lib文件、dll文件和usb.h文件添加到工程文件夹下,并在Project-》Settings-》Link下的Object/library modules 中添加libusb.lib库文件,还有添加usb.h头文件。
3、程序中用到的全局变量:#define MY_VID 0x8888#define MY_PID 0x0006usb_dev_handle *handle;HANDLE m_hDevice=INVALID_HANDLE_VALUE;CWinThread *m_pReadReportThread=NULL;OVERLAPPED ReadOverlapped;char ReadReportBuffer[16]={0};BYTE KeyStatus=0;volatile BOOL m_bReadReportRunFlag=FALSE;4、然后在OnInitDialog()下添加如下代码:struct usb_bus *busses, *bus;// usb_dev_handle *handle = NULL; //这个需定义为全局变量,在读线程中也许使用usb_init();usb_find_busses();usb_find_devices();busses = usb_get_busses();for(bus = busses; bus; bus = bus->next) {struct usb_device *dev;for(dev = bus->devices; dev; dev = dev->next) {struct usb_device_descriptor *desc = &(dev->descriptor);if((desc->idVendor == 0x8888) && (desc->idProduct == 0x0006)) { handle = usb_open(dev);if (!handle ){MessageBox("error opening device: \n%s\n", usb_strerror());return false;}}}}usb_set_configuration(handle,1);usb_claim_interface(handle,0);这是libusb的初始化代码,接下来就可以读写USB数据了。
VC++6.0使用手册(史上最全)
图1-1Visual C++界面开项目工作区文件时其他文件随即会自动打开。
在此文件夹下还会创建 Res(资源)、Debug(调试)、Release(发行)等子文件夹。
2.2编辑 在编辑窗口打开、浏览文件、输入、修改、复制、剪切、粘贴、查找、替换、撤销等操作,可以通过菜单完成,也可以通过工具栏按钮完成,这些与 Word 之类的 windows 编辑器用法完全相同,这里就不再重复叙述了。
2.3辅助VC 不仅提供了“语法着色”帮助我们阅读程序,还可以通过一些快捷键检查常见的括号不匹配错误。
MSDN 也可以在编辑过程中提示存在的变量名、函数名。
很多程序员借助类似 Visual Assist X 的工具辅助开发,减少程序出错的可能性。
3.开发 C 程序3.1开发单个 C 语言程序1. 创建一个工作文件夹。
由于开发过程会产生一系列文件,建议每开发一个新的 C 程序都创建一个工作文件夹。
还可以将所有工作文件夹集中到一起,如E:\LXH\EX01-01 、E:\LXH\EX03-02 等。
2. 启动 Visual C++。
3. 新建一个 C 语言源程序。
选择菜单:File 下的 New 菜单项,出现如图 1-2 所示 new(新建)对话框。
图1-2选择菜单File下的New菜单项选择 Files标签下的 C++Source File 在“E:\LXH\EG01-01”文件夹中创建C 程序:eg01-01.c,如图 1-3 所示。
图1-3Files标签4. 输入、编辑源程序。
注意不要输入中文标点符号,要及时按 Ctrl+S 保存文件,如图 1-4 所示。
图1-4输入源程序5.编译、连接。
点击“BuildMiniBar”工具栏上的“Build”按钮进行编译、连接。
也可以选择菜单 Build 下的 Build (F7) 菜单项或Rebuild All菜单项。
更简捷的方法是直接按 F7 功能键。
Visual C++将提示创建默认工作区,如图 1-5 所示。
vc6.0安装教程与调试技巧
vc6.0的安装过程1.首先解压安装文件的压缩包2.然后再选择安装的版本,VC6CN 表示的是中文版,VC6EN表示英文版。
3.打开VC6CN文件夹,其中有如下图标,鼠标双击。
4.如下图所示就是我们安装的第一步,单击下一步。
5.选择“接受协议”后单击下一步。
6.本软件属于破解版,故无需输入产品ID号码,直接单击下一步。
7.选择“安装visual c++6.0中文企业版(I)”,这就是我们要安装的程序,单击下一步。
8.单击下一步。
9.如下界面,单击“继续”,开始安装软件。
10.点击“确定”。
11.选择“是”,继续安装。
12.选择“typical”继续安装13.选择“ok”。
14.选择“确定”15.选择“确定”16.取消“安装MSDN”前面的勾号,选择“退出”。
17.选择“是”,取消MSDN的安装。
18.程序安装完毕,再电脑的“开始菜单”中,选择“所有程序”,在“Microsoft Visual C++ 6.0”目录中选择“Microsoft Visual C++ 6.0”就可以运行程序了。
也可以将这个图标发送到桌面快捷方式,这样就可以直接在桌面上运行程序。
调试技巧调试程序可以帮助的了解程序是怎样运行的。
1、如何快速地规范代码缩进格式选中所需要规范的代码,按shift+F82、如何在Release状态下进行调试Project->Setting…->Project Settings对话框,选择Release状态。
“C/C++”标签页中的Category选General,Optimizations选Disable(Debug),Debug info选Program Database。
在“Link”标签页中选中Generate debug info复选框。
注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。
VC++6.0补丁方法
下面是VC++6.0打补丁的方法,按照下面操作就行了。
上周说弄呢,结果搁置了。
1,将上面FileTool整个文件夹复制到你的VC++6.0安装目录下(如下图)(这是我自己的,你的你自己找一下)
2,双击打开VC++6.0这个软件
3,选择菜单栏内的“工具(Tool)”下的“定制(C)”选项
4,打开如图的对话框
5,选择“附加项和宏文件”
6,点击“浏览(B)”
7,将文件类型改成*.dll型
8,找到刚才你复制的那个FileTool文件下,Debug文件下的FileTool.dll文件,
9,点击打开
把“定制”关闭就行了
(如果显示一堆英语说什么*.dll文件损坏,则直接告诉我,接下来的就不用做了,需要别的办法解决。
)
10,这是屏幕上会出现这个
11,用鼠标拖动,把他放在你想放的任意地方
12,OK,完工,以后“O”就是打开文件的按钮,“A”就是添加文件的按钮。
VC++6.0中如何编译运行C语言的多个源文件程序
VC++6.0中如何编译运行C语言的多个源文件程序多个源文件的编译运行在源程序过多的情况下,单个源文件往往难于检查错误,因此在程序设计时,往往是由几个人各自独立编写不同的程序,显然这些程序是不能写在一起进行编译的,这时就需要建立项目工作区来完成几个独立程序的编译,具体方法如下。
打开VC++6.0,选择“file”→“new”打开如图1所示(图1)选择“workespaces”项,并在“workespaces name”项目下输入“file”(可随意)如图2所示(图2)单击“OK”,打开如图3所示(图3)在左侧的“Workespaces”显示了新建立的工作区选择“file”→“new”打开如图9所示,在“Projects”项目下选择“W in32 ConsoleApplication”项,并在“project name”项目下输入工程名称,如“file”,选择“Add to current workespaces”项,如图4所示(图4)单击“OK”,打开如图5所示(图5)选择“An empty project”项,单击“Finish”,打开如图6所示(图6)单击“OK”,打开如图7所示(图7)在左侧的“Workespaces”显示了新建立的工程选择“file files”→“Source”→“new”,打开如图8所示(图8)点击“C++ Source File”,然后到File中输入如file1.c,最后点击OK。
以同样的方式在这个文件下建立两个文件,打开如图17所示(图8)输入源代码1和源代码2,源代码1:#include<stdio.h>int A;int main(){int power(int n);int b=3,c,d,m;printf("enter the number a and its power m:\n");scanf("%d,%d",&A,&m);c=A*b;printf("%d*%d=%d\n",A,b,c);d=power(m);printf("%d**%d=%d\n",A,m,d);return 0;}源代码2:extern A;int power(int n){int i,y=1;for(i=1;i<=n;i++)y*=A;return(y);}(注:此程序完成其他文件外部变量的使用)选择“Build”→“Build file.exe”(或按F7键),打开如图9所示(图9)在下端的输出窗口会有错误和警告的提示,如果没有错误选择“Build”→“Execute file.exe”(或按Ctrl+F5)输入13,3即可出现运行结果,如图10所示(图10)。
vc调用动态库dll和lib
extern"C"void_fastcallfastcallproc(void);
//noname.cpp动态链接库实现文件
#include<windows.h>
extern"C"void_stdcallstdcallproc(void)
(1)静态链接到MFC 的规则DLL
静态链接到MFC的规则DLL与MFC库(包括MFC扩展 DLL)静态链接,将MFC库的代码直接生成在.dll文件中。在调用这种DLL的接口时,MFC使用DLL的资源。因此,在静态链接到MFC 的规则DLL中不需要进行模块状态的切换。
使用这种方法生成的规则DLL其程序较大,也可能包含重复的代码。
if(youFuntionNameAlias)
{
youFuntionNameAlias(param1,param2);
}
FreeLibrary(hDllInst);
}
}
显式(静态)调用:
LIB + DLL + .H,注意.H中dllexport改为dllimport
#pragma comment(lib,"RegularDll.lib")
3.3共享MFC DLL的规则DLL的模块切换
应用程序进程本身及其调用的每个DLL模块都具有一个全局唯一的HINSTANCE句柄,它们代表了DLL或EXE模块在进程虚拟空间中的起始地址。进程本身的模块句柄一般为0x400000,而DLL模块的缺省句柄为0x10000000。如果程序同时加载了多个DLL,则每个DLL模块都会有不同的 HINSTANCE。应用程序在加载DLL时对其进行了重定位。
VC6.0 IDE的使用和程序调试技巧
项目工作区窗口
ClassView页
FileView页 ResourceView页
FileView页
ClassView页
File->New->Proj32 Application
基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。 入口函数为WinMain
文件类型 Active Server Page Bitmap File C/C++ Header File HTML Page Resource Script Resource Template
Visual C++6.0 可以创建的文件类型 说明 文件类型 网页制作 Binary File 创建位图文件 C++ Source File 创建 C/C++头文件 Cursor File 创建 HTML 文件 Icon File 创建资源脚本文件 Text File 创建资源模板文件 SQL Script File
6:使用单步执行到程序结束
设置断点以后,调试运行程序时,程序 开始执行,并且运行到断点处暂停下来, 此时我们有机会观察程序的运行情况, 并且诊断程序目前的状态是否如我们所 预期的那样。 不过我们先不着急观察程序的状态,而 是来看看如何控制程序的运行,以便在 我们需要的时候让程序暂停下来,并且 以我们需要的方式走走停停!
方法是使用单步执行手段stepover让程序向前走一步停止调试停止调试并重新启动调试单步执行当前位置对比调试运行时出现的调试菜单debug和调试工具栏根据图标查找对应项设置断点调试运行程序此时程序暂停在断点处等待选择debug菜单找到最后一项quickwatch并点击输入想要观察的变量变量名变量的值点击addwatch点击addwatch看到如下画点击单步执行按钮或者菜单程序则向前单独运行一个步骤每向前执行一步就会暂停下来这样我们就有充足的时间观察所关心的变量名称按下f5键可以让程序从当前位置向前执行直到遇见下一个断点或者程序结束下面是赠送的ppt模板不需要朋友可以下载后编辑删除
安装libnet
Windows XP系统VC++6.0环境下安装libnet 开发包(1)第一步,安装SDK下载十个PSDK-Full分卷,然后解压PSDK-Full.1.cab,解压后双击安装程序“Stup”安装PSDK。
PSDK下载地址:/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.h tm安装完成后在VC的[工具]->[选项]->[目录]中分别添加sdk的include路径和library 路径:C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib注:上面两个目录要移到最上面。
(2)第二步,安装Winpcap下载WinPcap_4_1_2.exe和WpdPack_4_1_2.zip。
首先安装WinPcap_4_1_2.exe程序,然后解压缩WpdPack_4_1_2.zip文件,在VC中分别添加Winpcap的include路径和library 路径:E:\libnet\winpcap\WpdPack_4_1_2\WpdPack\IncludeE:\libnet\winpcap\WpdPack_4_1_2\WpdPack\Lib(3)第三步,安装libnet下载libnet1.1.2.1.zip文件,解压缩该文件,在VC中添加include路径:E:\libnet-1.1.2.1\include然后在win32文件夹里打开libnet.dsw文件。
在工程->设置->对象/库模块中写入advapi32.lib。
执行编译,在win32文件里出现Debug文件夹,打开该文件夹可以看见有libnet.dll和libnet.lib文件。
Visual C++ 6.0 - 工程设置解读
VC6.0的工程设置解读Project--Settings 做开发差不多一年多了,突然感觉对VC的工程设置都不是很清楚,天天要和VC见面,虽然通常情况下一般都不会修改工程设置,但是还是有必要对它的一些设置项的来龙去脉有一定的了解,所以狂查资料,稍作整理,总结一篇文档,方便以后查阅,总得记录点什么,温故而知新嘛。
进入工程设置界面有两种方法:方法一,选择法:【Project】->【Settings】方法二,快捷键:【Alt+F7】打开工程设置对话框,如下图:左边的列表可以选择要设置的工程编译方式(Debug或Release),如果多个工程,还可以选择要设置的工程。
右边是一个属性页,内容十分丰富,依次是:General , Debug , C/C++ , Link , Resource , MIDL , Browse Info , Custom Build , Pre-link Step , Post-build step下面主要介绍各个选项的功能:【General】设置工程的一般特性。
1.Microsoft Foundation Classes 连接MFC静态库的方式,默认为共享的DLL方式,对一些不支持MFC42的机器环境来说,选择静态编译还是有必要的。
2.Intermediate files 中间文件输出路径,比如:*.obj、*.pch、*.res、*.sbr、*.idb、*.pdb3.Output files 输出文件路径,比如:*.exe。
4.Allow per-configuration dependencies 按外部制作文件(exported makefile)方式为每个工程配置导出不同的可建立项目。
【Debug】设置工程调试的选项。
Category 选项种类,先看看General种类选项卡1.Executable for debug session 如果是dll的工程,需要指定启动它的exe文件路径,如果是exe工程,默认当前工程路径。
VB6.0怎么调用带参数的DLL?
VB6.0怎么调⽤带参数的DLL?vb6.0中可以创建DLL⽂件,也可以调⽤DLL⽂件,该怎么调⽤呢?下⾯我们就来看看详细的教程。
msdn for vb6.0(vb6 msdn) 精简中⽂版
类型:编程⼯具
⼤⼩:20.6MB
语⾔:简体中⽂
时间:2014-02-06
查看详情
1、桌⾯上双击VB图标,打开Visual Basic。
2、打开的VB窗⼝中,选择⽂件---->新建⼯程选项。
3、新建⼯程窗⼝中,选择ActiveX DLL选项。
4、编辑窗⼝中,输⼊dll⽂件的代码,具体内容由个⼈决定。
5、单击⽂件---->保存⼯程,将dll⼯程保存。
6、单击⽂件---->⽣成dll,⽣成⼀个dll⽂件。
7、单击⼯程---->引⽤选项,如下图所⽰。
8、引⽤窗⼝中,单击浏览按钮。
9、选择要引⽤的DLL⽂件,单击打开按钮。
10、DLL⽂件就被引⽤到应⽤程序中了,单击确定按钮。
11、接下来就可以在应⽤程序中,插⼊组件,书写代码使⽤DLL⽂件了。
以上就是VB6.0调⽤带参数的DLL的教程,希望⼤家喜欢,请继续关注。
VC++6.0中添加库文件和头文件
VC++6.0中添加库⽂件和头⽂件附加头⽂件包含VC6.0中:VC6.0默认include包含路径:Tools>Options>Directories>Include files。
对于特定项⽬的头⽂件包含,在“Project Setting>C/C++ (Category:Preprocessor)>Additional include directories”处添加附加头⽂件⽬录,相对⽬录参考*.dsp⽂件。
⽬录路径不需添加双引号,路径分隔符为’/’或’\’,不必考虑反斜杠’\’的转义。
多个路径之间以逗号分隔附加链接库包含VC6.0中:VC6.0默认lib包含路径:Tools>Options>Directories>Library files对于特定项⽬的头⽂件包含,可以通过以下两步添加附加链接库:1. 在“Project Setting>Link(Category:Input)>Additional library path”处添加附加库⽬录,相对⽬录参考*.dsp⽂件。
⽬录路径不需添加双引号,路径分隔符为’/’或’\’,不必考虑反斜杠’\’的转义。
多个路径之间以逗号分隔。
相应的将会在“Project Setting>Link>Project Options”处同步“/libpath”库包含命令。
2. 在“Project Setting>Link (Category:General)>Object/Library Modules” 处添加库⽂件名YourLib.lib(也可在⽂件中使⽤#pragma comment(lib, "YourLib.lib")显式导⼊所依赖的静态库),多个库之间以空格分隔。
相应的将会在“Project Setting>Link>Project Options”处同步包含的库名称。
VC++6.0静态编译
VC++6.0静态编译使⽤静态链接库:通过菜单中的”⼯程”->”设置”,”General”选项卡中”Microsoft Foundation Classes:”下拉选择”Use MFC in a Static Library”,这样,就可以设置为使⽤静态链接库了.如果选择use MFC in a Shared DLL 的话,你编译后的程序中不包含MFC库,所以⽂件会⽐较⼩,但是如果你的程序直接移到⼀个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。
如果选择Use MFC in a Static Library ,那你编译后的程序就直接包含了调⽤MFC的部分的库,⽂件可能会⼤⼀些,但是可以直接移到其他机器上运⾏。
前者是静态链接,发布不⽤带MFC的DLL⽂件。
后者是动态连接,发布要带MFC得DLL⽂件。
如果可执⾏⽂件只有⼀个,使⽤前者,执⾏速度快,但⽂件⽐较⼤。
如果可执⾏⽂件多个,使⽤后者,因为DLL⽂件是共享的,所以⽂件体积总量减少。
单个⽂件也⼩。
加载执⾏块,但运⾏速度略⽐前者慢。
used in a static library:使⽤lib⽂件。
lib是已经编译好的⼆进制⽂件,可以与你的⼯程静态链接起来成为⼀个exe。
used in a shared dll:使⽤dll⽂件,函数实现隐藏在DLL⽂件内部,你的⼯程编译成exe⽂件后,运⾏时才调⽤dll 。
Debug和Release版本:他们主要的不同点就在于Debug版本⽣成的exe中包含很多调试信息,Release版本没包含,并且,Release版本的代码是作了编译优化的. 所以,如果你的⼀个程序调试完毕可以发布时,请使⽤release版本⽣成exe. 当然release版本和debug版本的使⽤静态连接库要分别设置,如果release版本使⽤动态库的话,在没装VC的机⼦⼀般也运⾏不了. Release版本和Debug版本的设置⽅式是⼀样的.只是在”General”选项卡左边有⼀个Settings for的下拉,就是选择设置版本的.。
VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法
VC6.0打开⽂件以及向⼯程中添加⽂件时程序崩溃⾃动退出解决⽅法换了⼀台电脑,vc6.0程序中,点击打开⽂件以及向⼯程中添加⽂件时,程序竟然崩溃⾃动退出了。
不知什么原因,安装相同的vc程序,本本竟然出现此缘故。
但是这个操作⼜是⾃⼰经常⽤到的,所以不得不解决。
与上⼀台电脑不同的是,此电脑是win7系统,⽽上⼀个则是xp系统。
此电脑office是2010版本,⽽上⼀个则是WPS;于是乎,在⽹上查资料,来解决。
看到⽹上也有类似的问题,有的说是win7系统原因,有的说是office2007版本缘故,有的说是viso缘故。
总之,这⼏种说法,我都符合。
win7系统+office源码。
所以把⽹上解决⽅案,转过来,⽅便⼤家查询。
因为vc6.0程序,有英⽂版本和中⽂版本,以下的解决⽅案是英⽂版本的,意思就是英⽂的菜单,若有个别处,我会解析之。
需要下载⽂件FileTool,或者我已经上传资源中,同样可以下载。
下⾯是百度⽂库中的解决⽅案,按照下⾯的⽅式,我的问题已经解决。
1.下载FileTool.exe,并解压2.打开VC6.0,点击File-Open Workspace,选择刚解压出来的FileTool.dsw,并确定3.点击Bulid-Build FileTool.dll,⽣成FileTool.dll⽂件4.把⽣成的FileTool.dll⽂件拷贝到合适的地⽅(避免误删),在VC6.0中点击Tools-Customize5.在出现的“Customize”对话框中,点击Add-Ins and Macro Files标签6.点击Browse,定位刚才⽣成的dll⽂件,点击确定,然后点击OK保存设置7.此时VC中会出现⼀个上⾯只有两个图标的⼯具栏,点击其右上⾓的“X”按钮将其关闭,然后关闭VC6.0并重新启动程序8.还是在VC6.0中点击Tools-Customize(中⽂版本:⼯具——定制)9.在Customize对话框中点击Keboard标签(中⽂版本:定制对话框——键盘)10.从Category的下拉菜单框中选择File(中⽂版本:类别选项——⽂件)11.在Commands窗⼝中选择FileOpen(中⽂版本:命令选项——FileOpen)12.在Current keys窗⼝中选择CTRL+O条⽬,并点击Remove(中⽂版本:右边当前键[U]——选择Ctrol+o,点击移去)13.从Category的下拉菜单框中选择Project(中⽂版本:类别——Project)14.在Commands窗⼝中选择InsertFilesIntoProject,如果之前给它注册了快捷键,则按照上⾯所说步骤移除之,默认情况下它是没有快捷键的(中⽂版本:命令——InsertFilesIntoProject)15.从Category的下拉菜单框中选择Add-Ins(中⽂版本:类别——Add—Ins)16.这时Commands窗⼝中应该已经多出了AddFileToProject和OpenFile两个条⽬,可以给它们分配快捷键了,选择OpenFile 条⽬,然后点击Press New Shortcut Key输⼊框,按下想设置的快捷键或快捷键组合(如打开⽂件默认的快捷键CTRL+O),点击Assign可以以同样的⽅法为其它的命令设置快捷键:最后,还应该在菜单栏内做相应的改动,移除⽆法使⽤的旧Open命令,换上新的:1.在VC6.0中点击Tools-Customize2.点击File菜单,并将弹出菜单中的Open命令拖拽⾄弹出菜单之外并释放(注意:别拖到其他的菜单中,个⼈建议:直接拖到定制窗⼝中,就可以释放啦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC++ 6.0环境中LIB与DLL文件的使用
.
1.关于本文
首先声明,这不是教程,也不是论文,仅当工作和学习札记。
作为程序员,我们经常要与别人合作完成编程工作。
现代软件工程规模越来越大,一个程序可能被分配给不同程序员,不同部门,甚至不同单位合作完成。
这与一个人独立完成一个程序的工作流程大不相同,“因为你不是一个人”在编程——你的程序最终要和其他人的代码集成到一个系统中。
想一想吧,作为程序员,最痛苦的经历不是写程序,也不是阅读程序,最痛楚莫过于深陷于一大堆没有秩序的代码“泥沼”之中。
记住:我们是程序员,我们为程序员写程序。
像热爱我们的生活一样去打理我们的程序吧——I love this program!
2.案例分析
下面是一系列案例。
需要说明的是,这些案例不具有实用性,只是为了能够说明和简化问题而设计的,实践中的软件工程要复杂得多。
编程环境:VC++6.0Enterprise Edition 英文版。
2.1最初的工程
案例1说明:在下面的Test_Project_1工程中,仅有一个源代码文件Test_Main.cpp。
该工程完成以下功能:
max子程序首先显示版权信息,然后比较两个整型数的大小,并返回较大者,同时还要记录和显示max函数被调用了多少次。
在main主程序中,调用max函数2次。
这是我们最初的工程,没有考虑软件集成问题。
建立案例1步骤:
1)File→New→Projects→Win32Console Application。
在Location中指定工程保存位置,在Project name中输入工程名Test_Project_1,建立“An empty project”。
2)File→New→Files→C++Source File。
在File中输入文件名Test_Main,建立cpp文件,Test_Main.cpp文件内容见表2.1。
表2.1Test_Main.cpp文件内容
#include<iostream.h>
//定义宏。
版权信息。
#define COPYRIGHT"Scripted by FairyFar."
//全局变量。
记录max函数被调用的次数。
int GLOBAL_NUM=0;
/**********************************************************
函数功能:显示版权信息,返回两个整型变量中较大者。
入口参数:x,待比较大小的变量1;y,待比较大小的变量2。
返回值:两个整型变量中较大者。
Page1/9。