DLL
具体代码略。需要在def中定义:
EXPORTS GetDefaultPrinterName @1
调用
新建一个WIN32控制台,加一个CPP。内容如下:
#include <iostream> #include<windows.h> #include<string> using namespace std; #define PRINT_DLL_NAME L"Printer.dll" #define FUNCTION_INDEX 1 #define FUNCTION_NAME(i) (LPCSTR)MAKEINTRESOURCE(i) typedef void(WINAPI *TestFunction)(char*); int main() { HINSTANCE hDLL = LoadLibrary(PRINT_DLL_NAME); if (hDLL == NULL) { cout << PRINT_DLL_NAME << " ERROR: " << hDLL << endl; return -1; } TestFunction function=(TestFunction)GetProcAddress(hDLL, FUNCTION_NAME(FUNCTION_INDEX)); if (function == NULL) { cout << FUNCTION_INDEX << " ERROR:" << function << endl; return -1; } char name[256] = {0}; function(name); cout<<"RESULT="<< name << endl; FreeLibrary(hDLL); return 0; }
问题:能不能直接使用函数名得到函数入口?
有时必须使用这种方式。有时也可以直接使用函数名调用。具体参考: