我創建了一個使用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)並向我們顯示。 –