一、生成函数类型的动态库
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;
}