1.首先寫一個dll程序並且輸出成dll. 新建win32項目,然后在應用程序類型中選擇dll.
HelloDll.h:
#pragma once #ifndef MYDLL_API_EXPORTS #define MYDLL_API __declspec(dllexport) #else #define MYDLL_API __declspec(dllimport) #endif extern "C" MYDLL_API void sayHello();
HelloDll.cpp
// HelloDll.cpp : 定義 DLL 應用程序的導出函數。 // #include "stdafx.h" #include "HelloDll.h" #include "iostream" MYDLL_API void sayHello() { std::cout << "hello world"; }
2.新建一個控制台應用程序,將之前生成的dll放在調用程序生成的目錄里,然后就可以在程序中如下面這樣調用這個dll
ConsoleApplication1:
// ConsoleApplication1.cpp : 定義控制台應用程序的入口點。 // #include "stdafx.h" #include<Windows.h> #include "iostream" typedef void(*funcptr)(); int main() { using namespace std; const char* dllName = "HelloDll.dll"; const char* funcName = "sayHello"; HMODULE hDLL = LoadLibrary(_T(dllName)); if (hDLL != NULL) { funcptr func = (funcptr)GetProcAddress(hDLL, funcName); if (func != NULL) { (*func)(); } else { std::cout << "Cannot Find Function " << funcName << std::endl; } } else { std::cout << "Cannot Find " << dllName << std::endl; } getchar(); return 0; }
運行輸出結果: Hello World