您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 如何用VC++创建及调用DLL
  所属分类: C++
  开发工具:
  文件大小: 33kb
  下载次数: 0
  上传时间: 2011-07-18
  提 供 者: yxxne******
 详细说明: 关于特定情况下的调用,比如DLL函数中使用到了win32 API或者将C++生成的DLL供标准C语言使用,则需要注意以下一些情况:   如果使用到了win32 API,则应该使用调用方式为“__stdcall”。   在将C++生成的DLL供标准C语言使用,输出文件需要用“extern "C"”修饰,否则不能被标准C语言调用。如果使用“__stdcall”调用方式,可能产生C不识别的修饰名,所以设置导出函数时要采用.def文件形式,而不是__declspec(dllexport)形式。后者会进行修饰名转换,C语言无法识别函数。   下面的代码是一个定义文件的示例。   // SampleDLL.def   //   LIBRARY "sampleDLL"   EXPORTS   HelloWorld示例 DLL 和应用程序XXXXXXXX 在 Microsoft Visual C++ 6.0 中,可以通过选择“Win32 动态链接库”项目类型或“MFC 应用程序向导 (dll)”来创建 DLL。下面的代码是一个在 Visual C++ 中通过使用“Win32 动态链接库”项目类型创建的 DLL 的示例。   // SampleDLL.cpp   //#include "stdafx.h"   #define EXPORTING_DLL   #include "sampleDLL.h"   BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)   {   return TRUE;   }   void HelloWorld(){   MessageBox( NULL, TEXT("Hello World"), TEXT("In a DLL"), MB_OK);   }   // File: SampleDLL.h   //#ifndef INDLL_H   #define INDLL_H   #ifdef EXPORTING_DLLextern __declspec(dllexport) void HelloWorld() ;   #elseextern __declspec(dllimport) void HelloWorld() ;   #endif   #endif   下面的代码是一个“Win32 应用程序”项目的示例,该示例调用 SampleDLL DLL 中的导出 DLL 函数。   // SampleApp.cpp   //#include "stdafx.h"   #include "sampleDLL.h"   int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)   {   HelloWorld();   return 0;   }   注意:在加载时动态链接中,您必须链接在生成 SampleDLL 项目时创建的 SampleDLL.lib 导入库。   在运行时动态链接中,您应使用与以下代码类似的代码来调用 SampleDLL.dll 导出 DLL 函数。   ...   typedef VOID (*DLLPROC) (LPTSTR);   ...   HINSTANCE hinstDLL;   DLLPROC HelloWorld;   BOOL fFreeDLL;   hinstDLL = LoadLibrary("sampleDLL.dll");   if (hinstDLL != NULL)   {   HelloWorld = (DLLPROC) GetProcAddress(hinstDLL, "HelloWorld");   if (HelloWorld != NULL)   (HelloWorld);   fFreeDLL = FreeLibrary(hinstDLL);   }   ... ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: VC++ DLL
 输入关键字,在本站1000多万海量源码库中尽情搜索: