VC下Non-MFC DLL建立和使用
在VC2010下新建一個Win32 Project “myDll”,選擇工程屬性為dll,其它不變。
VC預設生成的檔案當中,沒有myDll.h檔案,手動新增一個。並加入如下程式碼:
//MyDLL.h
extern "C" _declspec(dllexport) int Max(int a, int b);
extern "C" _declspec(dllexport) int Min(int a, int b);
在myDll.cpp里加入如下程式碼:
// myDll.cpp : Defines the exported functions for the DLL application. #include "stdafx.h" #include "myDll.h" #include<stdio.h> #include"MyDll.h" int Max(int a, int b) { if(a>=b) return a; else return b; } int Min(int a, int b) { if(a>=b) return b; else return a; }
在Solution下新建一個工程“myDllTest”,在myDllTest.cpp中加入以下程式碼:
// myDllTest.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include <iostream> using namespace std; //#include "..\myDll\myDll.h" int _tmain(int argc, _TCHAR* argv[]) { int a, b; cout << "Please input two numbers:" << endl; cin >> a >> b; typedef int (*min)(int, int); typedef int (*max)(int, int); HMODULE hModule = LoadLibraryA("myDll.dll"); min Min = (min)GetProcAddress(hModule, "Min"); min Max = (max)GetProcAddress(hModule, "Max"); int min_val = Min(a, b); int max_val = Max(a, b); cout << "The max number is " << max_val << endl; cout << "The min number is " << min_val << endl; return 0; }
右擊"myDllTest"工程,設定一下“Dependece”--依賴"myDll"工程。
程式執行如下圖所示:
說明使用動態連結庫成功。>_<
相關推薦
VC下Non-MFC DLL建立和使用
在VC2010下新建一個Win32 Project “myDll”,選擇工程屬性為dll,其它不變。 VC預設生成的檔案當中,沒有myDll.h檔案,手動新增一個。並加入如下程式碼: //MyDLL.h extern "C" _declspec(dllexport) int
MFC中建立和使用執行緒的方法
有關建立執行緒的問題有三種方法: 1.C語言函式,呼叫_beginthread(); 2.API函式,呼叫CreateThread(); 3.MFC函式,呼叫AfxBeginThread(); 推薦使用MFC函式AfxBeginThread(); 利用
vxworks下的指令碼script建立和使用(相當於windows下的autoexec.bat)
首先,製作的vxworks需要支援【指令碼啟動】元件: 其次,BSP/config.h的【boot line】中要新增要啟動的指令碼,這裡假設名字為start.txt: 注意上面的start.txt前面一定要有路徑名,否則啟動後報找不到指令碼檔案錯誤! 修改完畢後
五十五、windows和Linux下虛擬環境的建立和使用
一、問題: 安裝同一個包的不同版本,後安裝的包會把原來安裝的包覆蓋掉。這樣,如同一臺機器上兩個專案依賴於相同包的不同版本, 則會導致一些專案執行失敗。 解決的方案就是:虛擬環境。 虛擬環境是真實
VC++6.0下基於MFC框架利用CInternetSession和CHttpFile獲取網頁資料(附程式碼)
例:從網站http://qq.ip138.com/weather/guangdong/GuangZhou.htm獲取近三天的日期、天氣、溫度、風向,程式碼如下: //新增標頭檔案 #include <afxinet.h> //獲取網路資料 void CSensorSysDlg:
vs2012環境下的VC++與MFC工程建立
1.C++語言 最主要的軟體開發語言,用於開發所有PC軟體,手機軟體以及嵌入式軟體等。 VisualC++,gcc是C++語言編譯器,VC主要開發Windows桌面軟體,gcc主要針對UNIX和LINUX作業系統,開發嵌入式軟體和手機軟體等。 MF
MFC:建立dll和呼叫dll
一、建立dll檔案:1、開啟VS2010,新建Win32專案,如下圖所示:2、應用程式型別,選取DLL3、新增新類 DigitalProc,在標頭檔案 DigitalProc.h中新增如下程式碼:#if
VC6.0 建立 MFC DLL
一:建立MFC shared DLL 1.使用def檔案: 新增新的類CExportDll,,將新類中匯出函式 放在 def檔案中。例子如下: // ExportDll.h: interface for the CExportDll class. // /////////////////
Linux下靜態庫、動態庫的建立和使用
Linux下靜態庫、動態庫的建立和使用 Linux庫檔名由:字首lib、庫名和字尾3部分組成,靜態庫通常以.a作為字尾,動態庫以.so作為字尾, Linux下把動態庫叫做共享庫,so即shared object的縮寫。 靜態庫是程式編譯連結時使用,動態庫是程式執行時使用。
Win32 DLL的建立和使用
Win32 DLL 0 建立Win32 DLL 專案 VS新建》專案》Win32專案》確定》下一步》DLL、匯出符號》完成 1 匯出標頭檔案 A.h #ifdef CHESS_LIB_EXPORTS #define CHESS_LIB_API __declspec(
vs環境下C++dll生成和使用(基礎篇)
動態庫和靜態庫: 動態庫:全名動態連結庫,用於將你的函式封裝,讓別人只能呼叫,不能看你的實現程式碼。由引入庫和dll組成:引入庫包含匯出的函式和變數名,dll包含實際的函式和資料,執行時載入訪問dll檔案。 Windows API中的所有函式都封裝在dll裡面,最重要的三個:
windows下動態庫dll和靜態庫編譯和使用問題
window下動態庫dll和靜態庫lib問題 windows下動態庫dll和靜態庫lib的聯絡和區別,以及示例匯出個動態庫 https://blog.csdn.net/lifei092/article/details/79630273 問題: 1,生成dll時,同時生成lib是做
VC++6.0 MFC獲取當前工作路徑和可執行檔案路徑
1. 獲取Debug或Release所在的路徑 CString GetModuleDir() { HMODULE module = GetModuleHandle(0); char pFileName[MAX_PATH]; GetModuleFileName(mod
VC++6.0 MFC顯示模態對話方塊和非模態對話方塊
1、模態對話方塊 #include "AddDataDlg.h"//新增標頭檔案 CAddDataDlg AddData_Dialog;//在標頭檔案中定義對話方塊物件(CAddDataDlg為該對話方塊對應的類) int nReturn = AddData_Dialog.DoModal
動態連結庫(DLL)的建立和使用
最近想做個記錄日誌的C++庫,方便後續使用。想著使用動態庫,正好沒用過,學習下。概念這裡不贅述。學習過程中碰到的幾點,記錄下來。學習是個漸進的過程,本文也是一個逐漸完善的過程。 一、Static Library 標準Turbo 2.0中的C函式庫(scanf、pringf、memc
linux建立賬戶並自動生成主目錄和主目錄下的檔案 linux建立賬戶並自動生成主目錄和主目錄下的檔案
linux建立賬戶並自動生成主目錄和主目錄下的檔案 # useradd -d /home/test -m test; 然後給test設定密碼。 # passwd test; 1. useradd
MFC(2):底層實現視窗、MFC視窗建立與訊息對映、windows字符集和嚮導的使用
=====================從底層去實現一個視窗=============== 程式入口是WinMain函式 視窗的建立步驟: --> 設計(WNDCLASS) --> 註冊(RegisterClass) -->
DLL的建立和使用
按照網上步驟建立一個產生.dll的testdll專案 testdll --Debug --testdll.dll (*) --testdll.lib (*) --testdll --Debug --testdll.cpp --testdl
Mac下idea從零建立springboot專案以及整合mybatis和mybatis逆向生成工具-springboot(1)
前言 近期從SSM框架轉為springboot開發restful風格的介面。網路上的資源質量良莠不齊,看了很多部落格,有很多專案名字、專案程式碼、專案id等等等的東西統統一模一樣但是按著來卻是執行不通,我就奇了怪了,你們都是統一思考的麼? 2018-11-2
MFC下對檔案及資料夾的操作(複製、剪下、刪除、建立資料夾,寫檔案)
1 void CFileOperationDlg::OnButtonCopy() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CString m_