標題: DLL--在c++和c#中的使用 [打印本頁]
作者: liuda 時間: 2015-1-23 02:21
標題: DLL--在c++和c#中的使用
一、Dll在c++中的創建:
1. 新建MFC DLL;
2. 在CPP中正常添加函數;
3. 在.h中extern "C" int __declspec(dllexport)add(intx,int y);聲明,注意extern "C"是C導出方式為_fun形式,不能導出類和重載;
__stdcall為Pascal導出方式,導出函數的形式為__fun@4
4. 在.def中添加add @ 1 這樣導出的函數名就不會被改變
二、Dll在c#中的調用:
1. 把dll文件放到與主程序同一個文件夾中。
2. 添加using System.Runtime.InteropServices;//
3. 在類中聲明
[DllImport("dllku.dll",EntryPoint="add")]
public static extern int add(int x,inty);
或者
[DllImport("HY_100.dll",CallingConvention = CallingConvention.Cdecl)]//C方式調用
public extern static int HY_Reader_Open(byte[]dev_name);
4. 正常調用add(2,3);
三、Dll在c++中的動態調用
假設名為a.dll導出了函數int add(inta, int b);
1. HMODULE hLib= LoadLibrary("a.dll"); //加載a.dll,這里是假設a.dll與程序放在同一目錄
2. typedef int(*funcadd)(int,int); // 定義函數指針
3. funcSum add= (funcadd) GetProcAddress(hLib, "add"); //獲取函數地址
4. int ret = add(1,2);//調用
5. FreeLibrary(hLib);//釋放
四、Dll在c++中的調用
1. #include "HY_U22H.h"// extern "C" __declspec(dllimport) long WINAPI add(intx,int y);
2. #pragma comment (lib, "HY_U22H.lib")
3.把dll文件放到程序能查找到的位置。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
美利坚合众国av
|
深夜福利网站
|
在线播放av网站
|
国产精品美女在线观看
|
欧美国产精品一区二区
|
色婷婷久久久
|
国产欧美一区二区三区视频在线观看
|
天天插天天插
|
亚洲第一在线
|
亚洲在线视频
|
黄色成人小视频
|
日韩一区二区三区在线播放
|
av一区二区三区在线观看
|
欧美激情在线播放
|
成人羞羞国产免费游戏
|
午夜免费网站
|
狠狠se
|
黄色一级免费看
|
精品少妇av
|
91av在线免费观看
|
中文字幕永久
|
亚洲黄色在线视频
|
久久精品6
|
久久爱影视i
|
国产视频一区二区三区四区
|
日韩高清一区
|
亚洲成人免费
|
精品一二区
|
中文字幕在线看
|
色爽
|
天天插天天
|
国产一级免费
|
国内精品一区二区
|
国产精品日韩在线
|
欧美一级做性受免费大片免费
|
国产一区在线看
|
日日夜夜av
|
天天搞天天干
|
又色又爽又黄18网站
|
欧美a视频|
中文字幕日本
|