我创建了一个使用DLL文件并调用其内部函数的测试应用程序。将另一个项目的头文件包含到DLL项目中
我跟着链接的步骤: Dynamically load a function from a DLL
我有Win32控制台应用程序和DLL创建者应用。理想情况下,Win32应用程序LoadLibrary()和GetsProcAddress()并获取该函数指针,该函数指针用于传递参数的DLL中的特定函数,返回结果,全部工作正常。
现在,我需要做的是,从控制台应用程序我需要调用DLL中的函数和DLL函数我需要调用Win32控制台应用程序中的函数来获取值而不是作为参数传递。
这样的事情,
1)纳入Win32控制台项目中使用到的DLL项目相同的头文件。 2)当Win32控制台项目名为DLL项目 3)获取从控制台项目,过程值里面的功能,并设置值返回到控制台应用程序
dllmain.cpp:
#include "evaluate.h"
extern "C" __declspec(dllexport) int _cdecl ADD(void)
{
int a = getValueOfA();
int b = getValueofB();
setValueOfC((a+b));
}
评估的.cpp:
int getValueOfA(void)
{
return 3;
}
int getValueOfB(void)
{
return 5;
}
void setValueOfC(int c)
{
printf("\nValue of C is: %d",c);
}
HINSTANCE hGetProcIDDLL;
typedef int(_cdecl *func_ptr)();
hGetProcIDDLL = LoadLibrary("MyDll.dll);
func_ptr addFunc = (func_ptr)GetProcAddress(hGetProcIDDLL, "ADD");
addFunc();
evaluate.h
int getValueOfA();
int getValueOfB();
void setValueOfC(int value);
MYDLL.DEF:
EXPORTS
ADD @1
任何额外的代码或程序需要遵循?这是可行的吗?
是您的实际代码?你真的有任何功能之外的陈述吗?请尝试创建[最小化,完整和可验证示例](http://stackoverflow.com/help/mcve)并向我们显示。 –