当前位置:天才代写 > tutorial > 其他教程 > Windows编程中的傻瓜

Windows编程中的傻瓜

2018-05-22 08:00 星期二 所属: 其他教程 浏览:291

  如何简单快速创建Win32平台下的动态链接库?但是有的创建出来用C/C++调用时没有问题,但是在其它编程语言调用时可能会出现问题,下面我们就开非常傻瓜式的步骤创建通用的windows动态库过程:

  1,创建空的win32空的工程。

  2,添加C/C++原文件和头文件。

  3,头文件内容(MyHead.h):

  #ifndef __MYHEAD_H__

  #define __MYHEAD_H__

  #ifndef MY_API

  #define MY_API extern “C” __declspec(dllimport)

  #endif

  添加你想要放到Dll中的引出函数,我们这里用一个加和减的函数功能来举例。

  MY_API int WINAPI MyAdd(int a, int b);

  MY_API int WINAPI MySub(int a, int b);

  #endif //__MYHEAD_H__

  本质上,在外面使用这个头文件是不会定义MY_API,所以在外使用DLL时,文件夹内容实际上为:

  extern “C” __declspec(dllimport)int __stdcall MyAdd(int a, int b);

  extern “C” __declspec(dllimport)int __stdcall MySub(int a, int b);

  4,C/C++内容:

  #include

  #define MY_API extern “C” __declspec(dllexport)

  #include “MyHead.h”

  MY_APIint WINAPI MyAdd(int a, int b)

  {

  return (a + b);

  }

  MY_APIint WINAPI MySub(int a, int b)

  {

  return (a – b);

  }

  注意:这里定义了MY_API。本质上,这里的函数声明为:

  extern “C” __declspec(dllexport)int __stdcall MyAdd(int a, int b);

  extern “C” __declspec(dllexport)int __stdcall MySub(int a, int b);

  5,增加def文件(Mydll.def):

  ;DLL导出文件,名字Mydll可以加引号

  ;by John

  LIBRARY Mydll

  EXPORTS

  MyAdd @1

  MySub @2

Windows编程中的傻瓜_C/C++_编程语言_C语言

  注意:

  一、在def文件中,函数名和@索引之间需要有空格、TAB等分隔符。

  二、def文件需要在“配置”,“配置属性”,“连接器”,“输入”,“模块定义文件”制定,否则即使添加到工程也不会起作用。在VS2008等后来版本中,也不能用#pragma comment(linker, “/DEF:”Mydll.def””)来让def文件起作用。

  这样用def文件生产的dll才能在VC以及VB等其他语言中使用。

  C语言编程调用dll时,只要引入MyHead.h和对于的lib,并加入dll文件即可编译运行。

  比如在VB中可以声明为:

  Declare Function MyAdd Lib “Mydll.dll” (ByVala As Long, ByValb As Long) As Long

  DeclareFunction MySub Lib “Mydll.dll” (ByVala As Long, ByValb As Long) As Long

  通过这五步,就可以把生成的Lib文件和dll文件提供给windows平台下的其它编程时使用,怎么样,比较简单吧?更多关于在线教育的文章尽在课课家,希望你们多多关注。

 

    关键字:

天才代写-代写联系方式