Dll 匯出類 [範例程式碼]

來源:互聯網
上載者:User

1、Dll相關代碼

MyDll.h

[cpp] view plaincopyprint?
  1. #ifdef DLL1_API 
  2. #else 
  3. #define DLL1_API extern "C" __declspec(dllimport) 
  4. #endif 
  5. DLL1_API int Add(int a,int b); 
  6. DLL1_API int Sub(int a,int b); 
  7. class __declspec(dllexport) Person 
  8. public: 
  9.     Person(char *name); 
  10.     char*   m_Name; 
  11.     int     m_Age; 
  12. }; 

#ifdef DLL1_API<br />#else<br />#define DLL1_API extern "C" __declspec(dllimport)<br />#endif<br />DLL1_API int Add(int a,int b);<br />DLL1_API int Sub(int a,int b);<br />class __declspec(dllexport) Person<br />{<br />public:<br /> Person(char *name);<br /> char* m_Name;<br />int m_Age;<br />};

 

MyDll.cpp

[cpp] view plaincopyprint?
  1. #define DLL1_API extern "C" __declspec(dllexport) 
  2. #include "MyDll.h" 
  3. #include <Windows.h> 
  4. #include <stdio.h> 
  5. #pragma comment(linker,"/DLL") 
  6. #pragma comment(linker,"/ENTRY:DllMain") 
  7. int Add(int a,int b) 
  8.     return a+b; 
  9. int Sub(int a,int b) 
  10.     return a-b; 
  11. Person::Person(char *name) 
  12.     m_Name = name; 

#define DLL1_API extern "C" __declspec(dllexport)<br />#include "MyDll.h"<br />#include <Windows.h><br />#include <stdio.h><br />#pragma comment(linker,"/DLL")<br />#pragma comment(linker,"/ENTRY:DllMain")<br />int Add(int a,int b)<br />{<br /> return a+b;<br />}<br />int Sub(int a,int b)<br />{<br /> return a-b;<br />}<br />Person::Person(char *name)<br />{<br /> m_Name = name;<br />}

 

編譯連結,如:

2、調用dll中類

Main.cpp

[cpp] view plaincopyprint?
  1. #include <iostream.h> 
  2. #include <stdio.h> 
  3. #include <windows.h> 
  4. #include "MyDll.h" 
  5. #pragma comment(lib,"MyDll.lib") 
  6. void main() 
  7.     int x=3; 
  8.     int y=9; 
  9.     int z=Add(x,y); 
  10.     printf("%d+%d=%d /r/n", x,y,z); 
  11.      
  12.     Person pt("123"); 
  13.     cout<<pt.m_Name<<endl; 

#include <iostream.h><br />#include <stdio.h><br />#include <windows.h><br />#include "MyDll.h"<br />#pragma comment(lib,"MyDll.lib")<br />void main()<br />{<br />int x=3;<br />int y=9;<br />int z=Add(x,y);<br />printf("%d+%d=%d /r/n", x,y,z);</p><p>Person pt("123");<br /> cout<<pt.m_Name<<endl;<br />}

 

編譯連結,如:

 

 

from:

http://blog.csdn.net/wangningyu/article/details/5467550

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.