1. 程式人生 > >VC++6.0 動態庫的建立與呼叫(非MFC的dll)

VC++6.0 動態庫的建立與呼叫(非MFC的dll)

非MFC動態庫的建立。。。。

lib.cpp
#ifndef LIB_H
#define LIB_H

//宣告add為dll的匯出函式.
extern "C" int _declspec(dllexport)add(int x,int y);

#endif

/*lib.h*/
#ifndef LIB_H
#define LIB_H

//宣告add為dll的匯出函式.
extern "C" int _declspec(dllexport)add(int x,int y);

#endif


也可以加上def檔案

; lib.def : 匯出DLL函式   
  
LIBRARY DllTestDef
  
EXPORTS   
add @ 1  


非MFc動態庫的呼叫

1.靜態呼叫

//靜態的呼叫dll動態庫,已將dll和lib檔案放在相應的工作路徑下了
#include <STDIO.H>
#pragma comment(lib,"dllTEST.lib")//..告訴編譯器與dll相關的lib檔案放在哪。

extern "C"_declspec(dllimport)add(int x,int y);//宣告匯入函式

int main()
{
	int result=add(2,3);
	printf("2+3=%d \n",result);
	
	return 0;
}


2.動態呼叫

//動態的呼叫dll動態連結庫.
//只需要將dll放在相應的工作目錄下即可
#include<stdio.h>
#include<windows.h>
//定義一個與add函式引數型別和返回指標型別均相同的函式指標型別.
//隨後在main函式中例項化
typedef int(*lpAddFun)(int,int);//巨集定義函式指標型別

int main()
{
	HINSTANCE hDLL;//DLL控制代碼
	lpAddFun addFun;//例項化上面的函式指標型別
	hDLL=LoadLibrary("./dllTEST.dll");//動態的載入DLL模組,並將DLL的模組控制代碼給hDLL.
	if(hDLL!=NULL)
	{
		addFun=(lpAddFun)GetProcAddress(hDLL,"add");//將DLL模組中的add函式的地址給addFun
		if(addFun!=NULL)
		{
			int result=addFun(2,3);//通過addFun來呼叫add函式
			
			printf("2+3= %d \n",result);
		}
		
		FreeLibrary(hDLL);//將DLL動態模組解除安裝
	}	
	return 0;
	
}

相關推薦

VC++6.0 動態建立呼叫MFC的dll

非MFC動態庫的建立。。。。 lib.cpp#ifndef LIB_H #define LIB_H //宣告add為dll的匯出函式. extern "C" int _declspec(dllexport)add(int x,int y); #endif /*lib.

VC++6.0 MFC中CStringint、double、float等資料互相轉化

C++中doulbe/float/int轉為CString的方法 在MFC程式中,可以使用Format方法方便的實現int、float和double等數字型別轉換為CString字串。以下是CString的Format支援的格式說明: C++表達方式 資

Android 6.0動態許可權介紹處理

一、Android 6.0許可權介紹 從 Android 6.0(API 級別 23)開始,使用者開始在應用執行時向其授予許可權,而不是在應用安裝時授予。 Android 6.0系統6.0以前,所有的許可權,訪問網路的許可權,讀取SD卡的許可權,訪問通訊錄,撥

c++動態生成呼叫

一、生成動態庫(含標頭檔案、不含標頭檔案) 以生成dllTest.dll為例(工程名為dllTest、 標頭檔案名為dllTest.h、 原始檔名為dllTest.cpp) 1.1 不含標頭檔案的動態庫 我們生成的動態庫想要被別人呼叫,那麼一定要將想要被呼叫的函式匯出,使用

ucos_ii VC++ 6.0開發環境建立

1. 現在檔案下建立目錄,如下: ucos_ii/v2.80: platform/win32: app: includes: 2. 建立VC++ 6.0工程 3. 匯入程式碼到VC++ 6.0工程中 4. 修改VC++ 6.0配置 匯入環

CocoaPods私有倉庫的建立使用svn伺服器

       眾所周知,CocoPods是iOS一個非常好用的依賴管理工具,可以使用它很好的管理和更新第三方庫,在公司的開發過程中,公司內部也嚐嚐有可以不同專案複用的功能模組,公司希望可以使用Coco

hadoop-2.6.0.tar.gz的叢集搭建3節點不含zookeeper叢集安裝

前言 關於幾個疑問和幾處心得! a.用NAT,還是橋接,還是only-host模式? b.用static的ip,還是dhcp的? 答:static c.別認為快照和克隆不重要,小技巧,比別人靈活用,會很節省時間和大大減少錯誤。 d.重用起來指令碼語言的程式設計,如paython或s

matlab函式編譯成供C++呼叫非常詳細

MATLAB具有著很高的計算效能,一些演算法用MATLAB很容易實現,而用C++很難實現,如果想在C++中呼叫MATLAB編寫的函式,可以將該函式編譯成庫檔案,之後在C++中對其進行呼叫。 本文詳細講解如何將MATLAB函式編譯成庫,並在C++中進行呼叫。方法可行,本人親測

oracle表的建立管理 學習筆記

複製表:create table myemp1 as select* from myemp;此類語法只有Oracle才支援.--表示註釋資料增加:insert into 表名稱[列名稱1,...] values(值1,...);資料修改:update 表名稱 set 欄位1=

鄰接表的建立輸出C語言

鄰接表是圖的常用儲存結構之一,它很好的解決了鄰接矩陣佔用空間較大的問題。 鄰接表用到了兩個結構體,一個是頂點表,包括點的序號和連線此起點的第一條邊。一個是邊表,包括連線此邊的終點和對應之前起點的下一條邊。 初始化鄰接表時,先將定點表賦值,並把指標指向NULL。再將輸入的資料

Maven 實戰-自動建立Maven專案web

mvn archetype:create和mvn archetype:generate   create is deprecated in maven 3.0.5 and beyond,在maven3.0.5以上版本捨棄了create,使用generate生成專案

VS2010VC++6.0使用靜態、動態連結的不同

無論是VS2010,還是VC++6.0,若要使用靜、動態連結庫,都需要提供編譯、連結、執行時所需的檔案(編譯階段要使用連結庫的標頭檔案;連結階段要使用連結庫對應的標頭檔案;對於動態連結庫,在執行時還需要載入dll檔案),只不過二者設定的方式不同而已。 在VS2010中編寫

VC++ 6.0編寫和使用動態連結

一、編寫動態連結庫 首先利用VC++新建一個Win32 Dynamic-Link Library型別的工程,工程取名為:Dll1,並在AppWizard的第一步選擇“An empty Dll project”選項,即建立一個空的動態連結庫工程。然後為工程新增一個C++原始檔

包含目錄、目錄、附加包含目錄、附加目錄、附加依賴項如何使用? 及靜態動態建立呼叫和vs裡引用的使用

引言:vs中怎麼新增外部標頭檔案?如過直接在專案標頭檔案處,新增一下,如下圖:則,依然會報錯,如下圖:有兩種方法,來解決(你不在vs上的新增它也沒事):(1) 直接把外部標頭檔案複製過來,放在此專案下即與該專案cpp檔案同一目錄,如下圖:(2)專案右鍵,屬性裡的C/C++ 

VC 6 0中新增檔案和標頭檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

6.0動態許可權設定,第三方PermissionGen的使用

android 6.0 新增加了執行時的動態新增許可權,在此介紹一個第三方庫,PermissionGen,可以很方便簡潔的增加 6.0許可權。 步驟: 1.引用庫:   在 app gradle 中引入: compile 'com.lovedise:permission

vc++6.0建立工程時選Win32 Application和Win32 console Application的區別

我想好多朋友在剛使用vc++6.0建立工程時不知道是選Win32 Application或是選Win32 console Application,有的就選擇了 Win32 Application,然而在編譯時會出現下面的錯誤提示: 怎麼回事呢?程式沒有錯誤,但怎麼會

VC++6.0使用MATCOM矩陣的方法

最近在做一個專案,甲方要求使用VC6.0來做,(都什麼年代了還在用vc6.0,無力吐槽,奈何甲方就是甲方),專案中設計到很多矩陣運算,並且要在原來的研究成果上來做,原來的成果大部分都是用Matlab實現的,這就需要一個轉化。對比了一大波矩陣庫(1.C++矩陣運算庫:matco

一行程式碼搞定安卓6.0動態許可權獲取請求許可權

安卓6.0的動態許可權申請困擾了很多開發者,谷歌提供的官方申請方式過於繁複,程式碼量很大,也不夠優雅。於是,我寫了一個動態請求許可權庫,用來方便的獲取許可權以及進行一些處理。 依賴庫 使用這個庫需要minSdkVersion>11,build.gr

Android Studio中so建立使用、jarjar呼叫so建立使用

工程下載https://download.csdn.net/download/cnicfhnui/10422621一、Android Studio 建立so庫,呼叫so庫第一步先下載NDK開發包,下載地址:https://developer.android.google.cn