dll编程
来源:互联网 发布:防范sql注入的常用方法 编辑:程序博客网 时间:2024/06/06 07:29
用vc++6.0新建一个dll工程,选择一个生成字符链接的dll工程:
dll.h
#ifdef DLL_EXPORTS#define DLL_API __declspec(dllexport)#else#define DLL_API __declspec(dllimport)#endif// This class is exported from the dll.dllclass DLL_API CDll {public:CDll(void);};extern DLL_API int nDll;DLL_API int fnDll(void);extern "C" DLL_API int fnTest(int a,int b);
dll.cpp
// dll.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include "dll.h"#include <stdio.h>BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break; } return TRUE;}// This is an example of an exported variableDLL_API int nDll=0;// This is an example of an exported function.DLL_API int fnDll(void){return 42;}DLL_API int fnTest(int a,int b){int c=0;c=a+b;char buffer[10];sprintf(buffer,"%d",c);::MessageBox(NULL,buffer,"dll",MB_OK);return c;}// This is the constructor of a class that has been exported.// see dll.h for the class definitionCDll::CDll(){ return; }
编译生成dll.dll和dll.lib 。把他们和dll.h导入testdll工程目录下
testdll.cpp 分别为静态调用(注释那部分)和动态调用
#include <stdio.h>//#include "dll.h"#include <stdlib.h>#include <windows.h>//#pragma comment(lib,"dll.lib")typedef int (*MyProc) (int,int);int main(){int result=0;int i=0;scanf("%d",&i);MyProc fp;HINSTANCE hdll=LoadLibrary("dll.dll");if(hdll==NULL){::MessageBox(NULL,"找不到dll","tips",MB_OK);return -1;}//result=fnTest(5,i);fp=(MyProc)GetProcAddress(hdll,"fnTest");result=fp(5,i);printf("the dll's Return is %d!\n",result);system("pause");return 0;}
- DLL编程
- DLL编程
- DLL 编程
- DLL编程
- DLL编程
- DLL编程
- dll编程
- vc dll编程
- vc dll编程
- vc dll编程
- vc dll编程
- vc dll编程
- vc dll编程
- VC Dll编程- -
- MFC扩展DLL编程
- IE编程---DLL绑定
- dll编程 01
- dll编程 02
- 日志输出 定义
- ORA-12516 解决方法
- PHP 页面编码声明方法详解(header或meta)
- 数据库原理(二)
- oracle日志操作模式(归档模式和非归档模式)
- dll编程
- javaweb项目中对于资源文件的读取
- 程序员,请昂起你高贵的头!
- linux下进程权限分析
- TAlpha类的灰色浮雕处理函数GrayEmboss_1000
- APP-ICONS尺寸大小的总结--图示
- VC++练习之编写一个C++程序,输入你的年龄,然后在屏幕上输出年龄
- php中时间戳和日期格式的转换
- jquery用attr给src赋值--失效