【基础转帖】c++ 怎么输出为dll
2010-06-02 22:13
309 查看
在VC++中选择新建一个Win32 Dynamic-Link Library。需要建立一个c/c++ head file和一个c/c++ source file并加入工程。头文件中内容为输出函数的声明,源文件中内容为DllMain函数和输出函数的定义。下面是一个最简单的例子。 //dlldemo.h #ifdef __cplusplus #define EXPORT extern "C" __declspec(dllexport) #else #define EXPORT __declspec(dllexport) #endif EXPORT void CALLBACK DllFoo(void) ; //dlldemo.c #include <windows.h> #include "dlldemo.h" int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved) { return TRUE ; } EXPORT void CALLBACK DllFoo(void) { MessageBox(NULL,TEXT("This function is exported from a DLL"),TEXT("DllFoo"),MB_OK) ; return ; } 头文件预处理中的__declspec是微软增加的“C扩展类存储属性”(C Extended Storage-Class Attributes),
它指明一个给出的实例被存储为一种微软特定的类存储属性,可以为thread,naked,dllimport或dllexport.
[MSDN原文:The extended attribute syntax for specifying storage-class information uses the __declspec keyword,
which specifies that an instance of a given type is to be stored with a Microsoft-specific storage-class attribute (thread, naked, dllimport, or dllexport).]
输出函数必须指明为CALLBACK。 DllMain是dll的入口点函数。也可以不写它。DllMain必须返回TRUE,
否则系统将终止程序并弹出一个“启动程序时出错”对话框。 编译链接后,得到动态链接库文件dlldemo.dll和输入库文件dlldemo.lib。
相关文章推荐
- 【基础转帖】c++ 怎么输出为dll
- C++语法基础--标准IO库--输出缓冲管理
- C++基础之两个头文件使用同一个变量会重复定义怎么办
- vs2008 C# 怎么调试C++ dll[转]
- C++语法基础--输出格式控制--setf(),标准控制符,iomanip中的格式控制
- C++基础之格式化输出
- C++基础:标准输入输出
- c++怎么比较5个字符串的大小并将其按从小到大输出
- C++语言基础 例程 C++中的输入和输出
- android jni c++怎么输出logcat日志
- C++ ACM 基础 cin重定向 cout 格式化输出
- C/C++ Tips: 查看DLL文件中的输出函数的小工具
- VC++动态链接库(DLL)编程深入浅出(转帖:基础班)
- java基础改学C++(二)输入输出、格式输出
- vs2010下C++调用DLL以及怎么生成DLL和为什么使用DLL
- c++中怎么控制浮点型小数点后输出的位数
- c++中输出小数格式控制(c++中怎么控制浮点型小数点后输出的位数)
- C++基础--字符串倒序输出
- [C++基础]cout与wcout,printf与wprintf,ofstream与wofstream关于输出中文的问题解决
- [C++基础]cout与wcout,printf与wprintf,ofstream与wofstream关于输出中文的问题解决