各位大牛,我刚学关于DLL方面的知识,现在碰到个问题,请教下:
我调用一个DLL文件,文件中有如下的接口
extern "C" _declspec(dllexport) bool CreateInstance(void** pInterface)
我怎么调用,我新建了一个基于对话框的项目,谢谢
我调用一个DLL文件,文件中有如下的接口
extern "C" _declspec(dllexport) bool CreateInstance(void** pInterface)
我怎么调用,我新建了一个基于对话框的项目,谢谢
解决方案 »
- 如何使用libjpg.lib?
- VC++的打开对话框中的文件类型可以有多种,这是怎么实现的?
- odbc的问题:数据集OPEN(),出现“连接超时”或语句很长的的连接错误等 对话框,如何让他们消失,变成自己写的对话框?
- 请各位指教:在vc中CString、LPSTR、 LPBYTE、 WORD、 BYTE 有什么不同?
- 关于阻塞式调用Connect,出错迅速返回的问题。
- 我的简易记事本程序的两个问题??
- 为什么访问数据库后不成功?(在线)
- 一个关于CEdit的问题!急!1小时结帖!
- 怎样实现FTP的断点续传
- C6255警告怎么解决?
- 请问如何读取一个IDB_BITMAP1资源到CDC中呢? 然后用GetPixel取得颜色.
- 为什么在一个工程中搜索一个文本串时,总是提示说 "Cannot find the string "?
然后把编译DLL的时候生成的Lib文件包含到工程中
然后直接用就行了
extern "C" _declspec(dllimport) bool CreateInstance(void** pInterface);
然后直接调用CreateInstance就行了.不过在编译时要用到LIB文件
extern "C" _declspec(dllexport) bool CreateInstance(void** pInterface)
{
_pLT = new CLTCtrl();
*pInterface=static_cast<DV*>(_pLT);
return true;
}
上面是导出函数,我写的函数如下void CdLGDlg::OnBnClickedOk()
{
HINSTANCE hDllInst = LoadLibrary( "LT.dll");
if(hDllInst == NULL)
MessageBox("失败!");
else if(hDllInst)
{
// 这里不知道该怎写了
}
OnOK();
}
typedef bool (*lpFunc)(void** );
lpFunc f;
f=(lpFunc)GetProcAddress(hDllInst,_T("CreateInstance"));
f(....);//调用函数;
typedef bool (*inshook)(void**);
inshook instkbhook;
hinstDLL = LoadLibrary((LPCTSTR)"你的dll.dll");
if(hinstDLL)
{
instkbhook = (inshook)GetProcAddress(hinstDLL,_T"YXPersonalize");
instkbhook(要下的参数);
}
else
{
::AfxMessageBox ("load Dll 失败");
}
FreeLibrary(hinstDLL);
CI pCreateInstance = (CI)GetProcAddress(hDllInst, "CreateInstance");
if (pCreateInstance != NULL)
{
...
}