- Nhận đường liên kết
- X
- Ứng dụng khác
- Nhận đường liên kết
- X
- Ứng dụng khác
Hướng dẫn tạo và sử dụng DLL bằng Win32 API, C++ với VC++. Mặc nhiên coi như đã nắm kiến thức về DLL
Ref:
http://diendan.congdongcviet.com/showthread.php?t=47180
1. Load time DLL (load lúc khởi chạy chương trình)
1.1. Tạo DLL:
Bạn khởi tạo 1 project tên là ProjDLL, chú ý chọn kiểu là DLL. Các việc phải làm:
- Tạo header file với tên ProjDLL.h:
#ifdef __cplusplus
#define WIN32DLL_API extern "C"__declspec(dllexport)
#else
#define WIN32DLL_API __declspec(dllimport)
#endif
WIN32DLL_API int testFunc(void);
- File ProjDLL.cpp:
thêm vào:
#include "ProjDLL.h"
và hàm:
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
WIN32DLL_API int testFunc(void)
{
MessageBox(NULL, L"testFunc", L"testFunc", MB_OK);
return 0;
}
- Build:
Chúng ta sẽ có các file ProjDLL.dll, ProjDLL.lib,...
1.2. Tạo project "client" kết nối (sử dụng) DLL trên:
Bạn tạo project tên ProjUseDLL
- Copy file ProjDLL.h và ProjDLL.lib vào thư mục project của ProjUseDLL (cùng thư mục với ProjUseDLL.cpp) và copy ProjDLL.dll vào thư mục sẽ chứa file ProjUseDLL.exe
- Tại stdafx.h (hay bất cứ file header nào của ProjUseDLL):
thêm vào:
#pragma comment(lib, "ProjDLL.lib")
Hoặc, nếu là VC++, phải chuột lên Project trong Solution explorer --> Add --> Existing file --> ProjDLL.lib
- Tại ProjUseDLL.cpp:
thêm vào:
#include "ProjDLL.h"
và sử dụng các hàm trên DLL như bình thường, ví dụ:
testFunc();
Ref:
http://diendan.congdongcviet.com/showthread.php?t=47180
1. Load time DLL (load lúc khởi chạy chương trình)
1.1. Tạo DLL:
Bạn khởi tạo 1 project tên là ProjDLL, chú ý chọn kiểu là DLL. Các việc phải làm:
- Tạo header file với tên ProjDLL.h:
#ifdef __cplusplus
#define WIN32DLL_API extern "C"__declspec(dllexport)
#else
#define WIN32DLL_API __declspec(dllimport)
#endif
WIN32DLL_API int testFunc(void);
- File ProjDLL.cpp:
thêm vào:
#include "ProjDLL.h"
và hàm:
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
WIN32DLL_API int testFunc(void)
{
MessageBox(NULL, L"testFunc", L"testFunc", MB_OK);
return 0;
}
- Build:
Chúng ta sẽ có các file ProjDLL.dll, ProjDLL.lib,...
1.2. Tạo project "client" kết nối (sử dụng) DLL trên:
Bạn tạo project tên ProjUseDLL
- Copy file ProjDLL.h và ProjDLL.lib vào thư mục project của ProjUseDLL (cùng thư mục với ProjUseDLL.cpp) và copy ProjDLL.dll vào thư mục sẽ chứa file ProjUseDLL.exe
- Tại stdafx.h (hay bất cứ file header nào của ProjUseDLL):
thêm vào:
#pragma comment(lib, "ProjDLL.lib")
Hoặc, nếu là VC++, phải chuột lên Project trong Solution explorer --> Add --> Existing file --> ProjDLL.lib
- Tại ProjUseDLL.cpp:
thêm vào:
#include "ProjDLL.h"
và sử dụng các hàm trên DLL như bình thường, ví dụ:
testFunc();
Nhận xét
hay quá! cảm ơn nha!
Trả lờiXóahat hanh nhan