You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++中调用MS Access DoCmd对象方法:旧Wrapper失效后的解决方案

在C++中调用MS Access的DoCmd对象方法问题

问题背景

我需要在C++程序中调用DoCmd对象的AddMenu()、ApplyFilter()、Beep()、BrowseTo()等所有方法。项目较为老旧,此前通过InvokeHelper调用DoCmd类的封装类实现功能,但更新MS Access后,该封装类失效,推测是接口变更导致,且无法确定封装类所依赖的文件(依赖项及导入中均无相关信息)。

此前封装类的方法示例如下:

void CWRAPPER::AddMenu(const VARIANT& MenuName, const VARIANT& MenuMacroName, const VARIANT& StatusBarText)
{
    static BYTE parms[] =
        VTS_VARIANT VTS_VARIANT VTS_VARIANT;
    InvokeHelper(0x3e9, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
         &MenuName, &MenuMacroName, &StatusBarText);
}

我不清楚被调用方法的具体位置,想知道是否有其他在C++中调用MS Access操作的方式或可用库?

更新内容

我在MS Access目录下的msacc.olb中找到了DoCmd对象,使用VS 16.11.31通过“从类型库添加MFC类”生成了新的封装类(未通过类向导,而是从“添加新项”视图操作),即将进行测试。


内容的提问来源于stack exchange,提问作者Anton Danko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:37:18