這篇文章主要介紹了dll動態庫怎么使用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
首先我們先來學習一下動態庫的調用,先找到動態庫的.dll和.lib文件并將其導入到同源文件相同級別的文件夾下面,然后在添加進其頭文件,并右擊項目處,然后點擊鏈接,鏈接我們的lib文件(一定要是全名稱包括擴展名),然后我們就可以調用動態庫的函數了。
Dll是我們具體的函數, lib使我們的函數描述文件。
#include <stdio.h>
#include <stdlib.h>
/*
該代碼是對文件讀寫操作的使用
*/
#pragma warning(disable:4996)
#define MAX_DATA_LEN 4096
//進行加密的函數
int FileSymEnc(char * from, char * to);
void main() {
char * from = "C:/Users/Administrator/Desktop/結構體的拷貝問題.docx";
char * to = "C:/Users/Administrator/Desktop/副本結構體的拷貝問題.docx";
//下面調用函數進行文件的讀寫
int re = FileSymEnc(from, to);
if (re == 0) {
printf("文件讀寫錯誤!");
}
system("pause");
}
int FileSymEnc(char * from, char * to) {
//返回值,以確定執行狀態,-0代表失敗,1代表成功
int re = 1;
//寫了幾個
int writtenLen = 0;
//準備寫幾個
int plainlen = 0;
//在堆區分配4k內存空間
unsigned char * buff = malloc(MAX_DATA_LEN);
buff = memset(buff, 0, MAX_DATA_LEN);
FILE * f = fopen(from, "rb");
FILE * t = fopen(to, "wb");
if (f == NULL) {
printf("打開讀文件錯誤!");
goto END;
}
if (t == NULL) {
printf("打開寫文件錯誤!");
goto END;
}
while (!feof(f))
{
writtenLen = fread(buff, 1, MAX_DATA_LEN, f);
//判讀是否讀到了文件末尾,如果讀到了則跳出循環
if (feof(f))
{
plainlen = writtenLen;
break;
}
if (writtenLen != MAX_DATA_LEN) {
//沒有讀取成功
printf("文件讀入失??!");
re = 0;
goto END;
}
//讀取成功進行文件的寫入
writtenLen = fwrite(buff, 1, MAX_DATA_LEN, t);
if (writtenLen != MAX_DATA_LEN) {
printf("文件寫入失??!");
re = 0;
goto END;
}
}
//外面處理不到4K的寫入問題,我們本不用進行格外的小數據讀寫,主不過這和我們的加密方式相關連得
writtenLen = fwrite(buff, 1, plainlen, t);
if (writtenLen != plainlen) {
printf("文件寫入失??!");
re = 0;
goto END;
}
END:
//堆分配的內存進行釋放
if (buff != NULL) {
free(buff);
buff = NULL;
}
//進行文件的關閉操作
if (f != NULL) {
fclose(f);
f = NULL;
}
if (t != NULL) {
fclose(t);
f = NULL;
}
return re;
}感謝你能夠認真閱讀完這篇文章,希望小編分享的“dll動態庫怎么使用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。