关于动态链接库的具体介绍参考本人转载博客:进程间通信详解 - 动态链接库实现
下文说说自己编写的动态链接库,主要作用是实现用VC++编写的A程序和用C++builder编写的B程序之间的通信,其中涉及结构体,所以需要注意一下,
1>动态链接库myDLL
新建一个dll工程(MFC AppWizard(dll)),并命名myDLL,这个工程中有三种形式:
1.动态链接库和MFC静态链接
2.动态链接库使用共享MFC DLL
3.MFC扩展DLL(使用共享 MFC DLL)
这三者的区别解释如下:静态dll中编译时嵌入了mfc的类文件,所以客户机上即使没有mfc的库文件也能运行你的dll,动态的dll运行时会调用系统的mfc库,所以客户机要想运行你的dll必须系统中必须有mfc库文件。常规mfc dll(前两种)不能导出类,只能导出函数,扩展的mfc dll则可以导出类。
我在此选用了第二种,建完工程后,在myDLL.h中添加内容
// myDLL.h : main header file for the MYDLL DLL
//
#if !defined(AFX_MYDLL_H__C094CB0F_D564_446A_BEB7_FA2E437933BB__INCLUDED_)
#define AFX_MYDLL_H__C094CB0F_D564_446A_BEB7_FA2E437933BB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/
// CMyDLLApp
// See myDLL.cpp for the implementation of this class
//
//添加内容
#ifdef DLL_API
#else
#define DLL_API extern "C" _declspec(dllexport) 注意1
#endif