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