一、生成函數類型的動態庫
1、創建一個動態庫的工程
2、創建一個CPP文件名爲:ExecCmd.cpp
內容如下:
#include <windows.h>
extern "C" {__declspec(dllexport) int _stdcall ExecCmd(char* pCmd,int nShow); }
int _stdcall ExecCmd(char* pCmd,int nShow)
{
return WinExec(pCmd, nShow);
}
二、加載調用函數類型的動態庫
1、創建一個Exe工程
2、創建一個CPP文件名爲:main.cpp
內容如下:
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
if (argc <=1)
{
return -1;
}
HINSTANCE hInst;
hInst = LoadLibrary(L"ExecCmd.dll");
if (hInst == INVALID_HANDLE_VALUE)
{
cout << "加載動態庫失敗。" << endl;
return -1;
}
typedef int(_stdcall *ExecCmdProc)(char*,int);
do
{
ExecCmdProc ExecCmd = (ExecCmdProc)GetProcAddress(hInst, (LPCSTR)MAKEINTRESOURCE(1));
if (ExecCmd == NULL)
{
cout << "獲取函數地址失敗" << endl;
break;
}
ExecCmd(argv[1],1);
} while (0);
FreeLibrary(hInst);
return 0;
}