SetOaNoCache定义在哪里?

4

尝试禁用 BSTR 缓存:

SetOaNoCache();

VC++编译器构建输出

  • 'SetOaNoCache':未找到标识符

不想使用:

  • OANOCACHE = 1

问题:

2个回答

8

它没有在头文件中定义,而是在OLEAUT32.dll中。您可以像这样调用它:

typedef int (*SETOANOCACHE)(void);

禁用BSTR缓存 { HINSTANCE hLib = LoadLibrary("OLEAUT32.DLL"); if (hLib != NULL) { SETOANOCACHE SetOaNoCache = (SETOANOCACHE)GetProcAddress(hLib, "SetOaNoCache"); if (SetOaNoCache != NULL) SetOaNoCache(); FreeLibrary(hLib); } }


+1:@sikx - 谢谢老兄!我会试一下的 :)。我在哪里可以找到更多关于这个的信息?你怎么知道它在OLEAUT32.dll中? - Aaron
2
2分钟内使用谷歌:http://www.tech-archive.net/Archive/VC/microsoft.public.vc.atl/2005-03/0184.html - Patrick Glandien
应声明为 "void __cdecl SetOaNoCache(void)"。请参阅MSDN文章:https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms644360(v=vs.85).aspx - Giorgi Chakhidze

3

不是的。从与C ++ Builder一起提供的Win32 API库中:

Requirements

Windows XP: Requires Windows XP Service Pack 2 or later.

Windows 95/98: Not supported.

Header: Not supplied. Declare prototype as shown.

Library: Use oleaut32.lib.

原型如下所示:
inline void TurnOffCache ()
{
// Function prototype.
extern "C" SetOaNoCache(); 
// Turn off BSTR caching.
SetOaNoCache();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接