大家好我是Andy,今天來到了第五天,前幾天我們都看過靜態動態,昨天也試做過一個dll,那今天我們就要利用昨天的dll來完成這次的「靜態」調用函式庫。
首先我們先新增一個空白專案
之後再右邊的來源檔案按下右鍵新增項目
選擇C++檔案
這個就好像連結器,前面我們有說過dll如果需要和exe做連結才能使用的時候,在靜態的時候我們就需要
一個lib檔去告訴連結器呼叫的函式在哪個dll裡面
這個就是我們在dll導出函數之後,在exe這邊我們要告訴exe要呼叫哪一個函式
不然光連結沒有呼叫在主程式中呼叫dll的函數他會跟你說找不到識別項
所以這行很重要 我這次就不說三次了
#include <windows.h>
#pragma comment(lib,"Dll5")
#include <stdio.h>
#include <stdlib.h>
extern "C" void ccc();
int main()
{
HWND window;
window = FindWindow(NULL, "Debug");
SendMessage(window, WM_CLOSE, 0, 0);
ccc();
return 0;
}
在昨天有先帶到了Windows.h檔今天就有實際應用
敘述類的我就不再貼過來了,如果忘記的話就在上一天那邊~
在建置exe的時候別忘了要把dll和lib檔案複製到資料夾裡面
如果沒有lib的話她會說無法開啟檔案.lib
而在執行exe的時候則是需要dll
之後大家也可試試看把exe和dll移到另一個新的資料夾試試看
也可以把dll拿掉看可不可以執行
靜態和動態最大的差別就是靜態需要在同一個資料夾上,但是動態不需要
#pragma comment(comment-type,["commentstring"]) //連結靜態庫
comment-type是一個定義的標示符號
有compiler,exestr,lib,linker(這邊除了lib之外我就不解釋了,有興趣可以查一下)
commentstring是一個為comment-type提供附加信息的字符串,像是lib的話就要附加dll資料庫
今天講述了如何使用exe調用dll,順帶一提今天是第一週的第一個週末,沒在上班突然好不想寫哈哈哈,下禮拜六還要補班一想到就整個憔悴天啊,好吧我們明天見。