mengjichen 发表于 2013-2-1 09:29:23

VC生成DLL并且调用DLL文件

打开VC 新建 工程 Win32 Dynamic~Link Library 名字“MakeDll” 新建classMakeDll MakeDll.h// MakeDLL.h: interface for the MakeDLL class.#if !defined(AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_)#define AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000extern "C" _declspec(dllexport) int sum(int a,int b);//class MakeDLL{public:MakeDLL();virtual ~MakeDLL();};#endif // !defined(AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_)MakeDll.cpp#include "MakeDLL.h"//////////////////////////////////////////////////////////////////////#include "windows.h"BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){return TRUE;}extern "C" _declspec(dllexport)int sum(int a, int b){return a+b;}//////////////////////////////////////////////////////////////////////MakeDLL::MakeDLL(){}MakeDLL::~MakeDLL(){}编译生成MakeDll.dll文件调用DLL :新建工程 Wind32 Console ApplicationDllTestDllTest.h#if !defined(AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_)#define AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class DllTest{public:DllTest();virtual ~DllTest();};#endif // !defined(AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_)DllTest.cpp#include "DllTest.h"#include "stdio.h"#include<windows.h>//////////////////////////////////////////////////////////////////////void main(void){HINSTANCE hDLL;hDLL=LoadLibrary("MakeDll.dll");//加载动态链接库MyDll.dll文件;typedef int( *pSum)(int a,int b);pSum Sum ;//= Sum=(pSum)GetProcAddress(hDLL,"sum");int a = Sum(5,8);printf("%d",a);}//////////////////////////////////////////////////////////////////////DllTest::DllTest(){}DllTest::~DllTest(){}把 MakeDll.dll 拷贝到 DllTest 文件夹下 编译运行结果 13 over
页: [1]
查看完整版本: VC生成DLL并且调用DLL文件