我需要动态地实现对DLL的访问,我能够知道DLL的名称,我也拥有该DLL,我知道它能支持什么操作,对应的参数是什么,不过这些都是通过参数传递进来的
我如何编程实现?
例如
int MyFunction(DllName,returnType,DLLFunName,type1,para1,type2,para2)
{
// Load(DLLName);
return DLLFunName(para1,para2);
]
请高手指点!!!
我如何编程实现?
例如
int MyFunction(DllName,returnType,DLLFunName,type1,para1,type2,para2)
{
// Load(DLLName);
return DLLFunName(para1,para2);
]
请高手指点!!!
HINSTANCE h = LoadLibrary(DllName);
FUNCTYPE Func = GetProcAddress(h,DLLFunName);
returnType ret = Func(para1, para2);
FreeLibrary(h);
return ret;
但是类型不能使用变量,所以要case
比如上面typedef returnType (*FUNCTYPE)(type1 para1, type2, para2);
类似这些可能要case了
然后把传入的参数赋给dll中的函数指针调用
我们有一个My.dll,支持方法FunctionName,
int FuntionName(int a,float b)
{
return 10;
}
我们的应用程序并不知道会访问这个DLL,它的一个函数是:
CString DealDLL(char** inputData)
{
}
输入是一个字符串数组,(这个数组不定长),本次内容分别是
{
"My.dll","typeInt","FunctionName","typeInt","53","typeFloat","123.456"
}
要求根据这个输入,得到答案,答案放到一个字符串中;
谢谢!!!!
http://www.codeproject.com/dll/Execute_DLL_Function.asp
复杂是复杂了一点,不过好歹有用,谢谢大家!