tft每日頭條

 > 科技

 > windows編程教程一步一步來

windows編程教程一步一步來

科技 更新时间:2026-02-16 09:33:57

  windows編程教程一步一步來(傻瓜式Windows編程)(1)

  如何簡單快速創建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時,文件夾内容實際上為:

  4,C/C 内容:

  #include windows.h

  #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

  注意:

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

  二、def文件需要在“配置”,“配置屬性”,“連接器”,“輸入”,“模塊定義文件”制定,否則即使添加到工程也不會起作用。在VS2008等後來版本中,也不能用#pragma comment(linker, "/DEF:\"Mydll.def\"")來讓def文件起作用。

  這樣用def文件生産的dll才能在VC以及VB等其他語言中使用。

  windows編程教程一步一步來(傻瓜式Windows編程)(2)

  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平台下的其它編程時使用,怎麼樣,比較簡單吧?

  大家如果對編程感興趣,想了解更多的編程知識,解決編程問題,我們這裡有java高手,C /C高手,windows/Linux高手,android/ios高手,請大家關注我的程序員互動聯盟或者coder_online

  ,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2026 - www.tftnews.com All Rights Reserved