首先你要知道所要调用函数的原型格式。然后才能使用。
HINSTANCE hInst = LoadLibrary("User32.dll");
if(hInst)
{
typedef BOOL(* pfn)(void);
pfn func = (pfn)GetProcAddress(hInst, "LockWorkStation");
if(func) // 调用
(*func)();
FreeLibrary(hInst);
}
HINSTANCE hInst = LoadLibrary("User32.dll");
if(hInst)
{
typedef BOOL(* pfn)(void);
pfn func = (pfn)GetProcAddress(hInst, "LockWorkStation");
if(func) // 调用
(*func)();
FreeLibrary(hInst);
}
解决方案 »
- SNMP服务调用WTSQueryUserToken返回ERROR_PRIVILEGE_NOT_HELD
- 如何在VC里实现从CSplitterWnd类派生新类?
- 上帝才能解决的问题
- CListCtrl怎样在大量添加数据的时候不更新窗口
- VC++中如何获取打开的文件内容?
- 谁提供几个运用钩子拦截消息的例子
- OpenGl 下的wglCreateContext Failed错误
- 执行钩子安装时的奇怪问题,请大家帮忙看看
- 困惑我一个多星期的api拦截问题,急需高手指点,提供解决问题思路同样给分!!(在线等待)
- 界面闪烁问题
- CHAR 与WCHAR类型转换问题
- 关于postmessage的一个小问题,答对者送分
就可以直接调用里面的函数
我想用GDI里的AlphaBlend(..)。显试调用好像出了问题,代码如下:
typedef BOOL (*ALPHAFUNC)(
HDC hdcDest, // handle to destination DC
int nXOriginDest, // x-coord of upper-left corner
int nYOriginDest, // y-coord of upper-left corner
int nWidthDest, // destination width
int nHeightDest, // destination height
HDC hdcSrc, // handle to source DC
int nXOriginSrc, // x-coord of upper-left corner
int nYOriginSrc, // y-coord of upper-left corner
int nWidthSrc, // source width
int nHeightSrc, // source height
BLENDFUNCTION blendFunction // alpha-blending function
);
BLENDFUNCTION bf; bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.SourceConstantAlpha = 200;
bf.AlphaFormat = 0;//AC_SRC_ALPHA ; HINSTANCE hInst = LoadLibrary("Msimg32.dll");
if(hInst)
{
ALPHAFUNC AlphaFunc = (ALPHAFUNC)GetProcAddress(hInst, "AlphaBlendA");
if(AlphaFunc)
(*AlphaFunc)(m_hdc,50,50,30,30,m_hmemdc,0,0,30,30,bf);
FreeLibrary(hInst);
}我想改用隐形的又该怎样?
1,显示使用:就是LoadLibrary,然后在GetProcAddress一个函数地址,最后用之;2,隐士使用:包含该DLL导出函数的头文件,然后包含编译该DLL时生成的LIB文件,编译之后就用了。我说对了吗
不过现在的问题是我上面的程序怎么会出错!