使用 XLW 项目和 Visual Studio 2022 C++ 构建和调试 Excel 加载项

2024-03-18

我正在使用以下命令创建 Excel 加载项XLW https://github.com/xlw/xlwGitHub 上的 Visual Studio 2022 C++ 项目。

我做了以下事情:

创建一个解决方案 MyFunction,其中包含两个项目 MyFunction 和 XLW。

在 MyFunction 中,配置属性 -> 常规 -> 配置类型设置为静态库。

在我的函数中,

my_header.h

#pragma once

double EchoDouble(double x);

my_source.cpp

#include "my_header.h"

double EchoDouble(double x)
{
    return x;
}

在 XLW 中,XLW 包是通过 NuGet 包管理器安装的,并且

  • 配置属性 -> 常规 -> 配置类型设置为动态库。
  • 配置属性 -> C/C++ -> 其他包含目录设置为包含解决方案的文件夹。
  • 配置属性 -> 链接器 -> 常规 -> 其他库目录设置为包含 MyFunction.lib 的文件夹。
  • 配置属性 -> 链接器 -> 输入 -> 其他依赖项设置为 MyFunction.lib。

In XLW,

cpp接口.h

#ifndef TEST_H
#define TEST_H

#include <xlw/MyContainers.h>
#include <xlw/CellMatrix.h>
#include <xlw/DoubleOrNothing.h>
#include <xlw/ArgList.h>  
    
using namespace xlw;

//<xlw:libraryname=MyTestLibrary


double MyEchoDouble(double x);

#endif

源代码.cpp

#include "cppinterface.h"
#include "MyFunction/my_header.h"

#pragma warning (disable : 4996)

double MyEchoDouble(double x)
{
    return EchoDouble(x);
}

首先构建 MyFunction,然后构建 XLW。在 Excel 和 MyEchoDouble 中加载生成的加载项 XLW.xll。

要进行调试,我可以执行“调试”->“附加到进程”->“附加到本机代码”并选择 Excel 实例。效果很好。

或者,我做

  • 配置属性 -> 调试 -> 命令设置为 EXCEL.EXE 的路径
  • 配置属性 -> 调试 -> 命令参数设置为 $(TargetPath)
  • 将 XLW 设置为启动项目。

按F5,我收到错误消息:

抛出异常

EXCEL.EXE 中的 0x00007FFE8496B74B 处引发异常:0xC0000005:读取位置 0x0000000000000000 时发生访问冲突。

框架不在模块中

在加载的模块中找不到当前堆栈帧。无法显示该位置的来源。

我的问题是

  1. 我设置项目的方式正确吗?我想要实现的是所有功能都在MyFunction项目中实现。然后在XLW项目中完成相应的Excel函数,并由XLW项目生成加载项。
  2. 替代调试方法出了什么问题?

谢谢你的建议。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XLW 项目和 Visual Studio 2022 C++ 构建和调试 Excel 加载项 的相关文章

随机推荐

  • 图论。如何处理此类问题?我想知道解决这个问题时的逻辑和思考方式。

    求笛卡尔平面上从 0 0 到 n n 的路径数 该路径永远不会高于 y x 线 可以沿着路径进行三种类型的移动 move up i e from i j to i j 1 move to the right i e from i j to
  • Lua中字符串的串联

    在许多语言中 您可以在变量赋值时连接字符串 我有一个使用 Lua 编程语言的场景 我需要将命令的输出附加到现有变量 Lua 中是否有与以下示例等效的功能 其他语言的例子 PERL filename checkbook filename tm
  • C# 带有 new 和 get 整数的构造函数

    这是 Unity 5 5 0 上的结构我对 C 很陌生 不太了解属性和结构 这会在分配期间出现错误this X 我假设您无法更改结构上的值 并且关键字 this 指的是结构的属性 在控制返回给调用者之前 必须完全分配自动实现的属性 Poin
  • 返回php文件中图像的内容?

    我真的不懂 PHP 但我想做一件简单的事情 我从 a 中访问 php 页面 img src myhumbleimage php 我想要从另一个 URL 返回图像 我想出了
  • 什么是布尔标志

    我正在学习 Visual Basic 2010 课程 并试图掌握这个称为 标志 的新术语 我有点理解它与布尔条件有关 我不太明白flag是什么 我看到使用术语 标志 来引用它 我知道当布尔值 条件触发标志时 它会发生一些事情 但旗帜是什么
  • 如何在android sqlite中删除单行

    I have sqlite数据表示在ListView by a CustomListAdapter 单击一行时alert dialogue弹出提示用户删除单行sqlite在我的活动中 private void deleteDialog Al
  • 如何在多 HttpSecurity 情况下返回 http 状态代码而不是登录页面

    我有一个 Spring Boot 应用程序 它通过以下方式提供 HTML 页面服务 还有rest api通过 api 前者需要通过登录表单登录 后者需要HTTP基本身份验证 因此 我配置了两个HttpSecurity部分如下 Configu
  • 以编程方式阻止 Windows 屏幕保护程序启动

    是否有推荐的方法来阻止 Windows 屏幕保护程序启动 我发现的最接近的是本文 http www codeproject com KB cs ScreenSaverControl aspx 但我真正想做的只是告诉 Windows 计算机没
  • Angular 2抛出错误:插座未激活

    我已经设置了我的应用程序 以便我有一个Recipe Book其中有一个列表Recipies当我点击食谱时 它会显示Recipe Details在嵌套路由中 然后 它还有一个按钮 单击该按钮会将成分加载到嵌套路径中Recipes Detail
  • 如何在 Vim 中普遍使用相对行号

    我喜欢 Vim 7 3 中的相对行编号功能 但我很难让它普遍适用 对于许多文件 行编号会恢复为绝对模式 即使我已指定 set rnu in my vimrc文件 知道是什么原因造成的吗 我在 OSX 10 6 上使用 Vim 7 3 以及
  • 等待线程是否重新访问synchronized方法内的代码

    我正在阅读有关线程同步和等待 通知结构的内容tutorial http docs oracle com javase tutorial essential concurrency guardmeth html 它指出 当调用 wait 时
  • 将 $cond 运算符与 Spring-data-mongodb 一起使用[重复]

    这个问题在这里已经有答案了 我希望汇总以下数据 user user1 error true user user2 error false user user1 error false Into id user1 errorCount 1 t
  • Docker run --volume 不断创建随机卷而不使用指定的卷

    Docker 不断创建随机卷 而不是使用我在运行时指定的卷docker run 我将从无卷开始 docker volume ls DRIVER VOLUME NAME 我将创建一个 docker volume create myvol 它将
  • 缓存一致性有什么意义?

    在像 x86 这样提供缓存一致性的 CPU 上 从实际角度来看这有何用处 据我所知 这个想法是让一个核心上完成的内存更新在所有其他核心上立即可见 这是一个有用的属性 然而 如果不是用汇编语言编写 就不能太依赖它 因为编译器可以将变量赋值存储
  • 如何在 Mac 上恢复 .bash_profile?我的 Unix 终端都无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在尝试将 Playframework 添加到我的路径时向我的 bash profile 添加了一些内容 但有些内容严重混乱 我将以下行添
  • Angular2-Webpack-Typescript - 3rd 方库

    我开始了一个美丽的种子项目 https github com AngularClass angular2 webpack starter https github com AngularClass angular2 webpack star
  • 在构建时设置.net core库程序集/文件/nuget包版本

    我正在寻找一种在构建时设置 net core 库的程序集版本 以及文件版本和 nuget 包版本 的方法 我的库是使用最新的 Visual Studio 2017 RC 编写的 因此不再需要projects json文件 并由 TeamCi
  • iOS UI 元素移植到 Android 上

    女士们 先生们 在我的工作中 在开发 Android 应用程序时 我经常满足客户的以下要求 使其看起来像 iPhone 应用程序 是的 我知道 最好的方法是为他提供规范的 Android 设计 其中包含所有这些模式 例如仪表板 使用菜单按钮
  • Firestore (9.6.6):连接 WebChannel 传输错误:

    在反应应用程序中 我在同一个文件中有两个几乎相同的函数来将文档添加到子集合中 一个每次都有效 另一个使用不同的子集合 大多数时候都会收到以下警告 注意 不是错误 并且不会添加数据 await addDoc collection db use
  • 使用 XLW 项目和 Visual Studio 2022 C++ 构建和调试 Excel 加载项

    我正在使用以下命令创建 Excel 加载项XLW https github com xlw xlwGitHub 上的 Visual Studio 2022 C 项目 我做了以下事情 创建一个解决方案 MyFunction 其中包含两个项目