从 Visual C++ DLL 导出非托管类?

2024-01-02

当使用 Visual C++ 2008 创建 DLL 时,我有几个选择。我可以创建一个《班级图书馆》,我知道它实际上会给我一个使用 C++ 的 CLI(托管)扩展的 .Net 库。

因为我不希望这样,并且我假设我需要一个静态 .LIB 文件来链接到另一个 Visual C++ Windows 可执行项目,所以我选择“Win32 项目”,并在“应用程序设置”面板上指定 C++(无 MFC) ) DLL。

这将创建一个带有 .cpp 文件的项目,该文件应该是我定义的位置“DLL 应用程序的导出函数”.

这似乎也不是我想要的。基本上,我正在寻找的是与 C# .NET 中的类库程序集等效的本机 C++。我想将一些类打包成DLL,然后有一个.EXE项目使用 DLL 的类通过包含 DLL 项目头文件并与 .LIB 链接来解析引用。

这样做的通常方法是什么?


你做对了。你需要做的是标记你的课程__declspec(dll导出) http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx使它们可以从项目外部使用。构建项目时,您将生成 .DLL 和 .LIB。

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

从 Visual C++ DLL 导出非托管类? 的相关文章

  • 使用 Visual Studio Express 2010 表单应用程序进行 C++ 多线程处理

    我正在开发一个 Windows 窗体应用程序 它连接到一个硬件 获取大量数据 1 GSample 秒 对其进行处理 然后单击按钮将其输出到屏幕上 我现在尝试在一个可以随时启动 停止的循环中自动化该过程 以便我可以在调整采集硬件的输入的同时对
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 0xc000007b“应用程序无法正确启动”错误?

    我在 Visual Studio 2019 中编写了一个 C 控制台应用程序 并尝试将其部署到另一台 Windows 笔记本电脑 两台笔记本电脑均运行最新的 64 位 Windows 10 我的目标笔记本电脑已安装 最新的 NET Fram
  • 本机 C++ 通过代理 C++ 托管 dll 使用 C# dll

    这相当复杂 所以请耐心听我说 我有一个用本机 仅限 Win32 C 编码的第 3 方程序 目标 作为目标设计的一部分 它实现了一个 dll 插件系统 本机 DLL 当放置在程序的 ext 目录中时 由目标加载 然后 目标根据需要调用每个 D
  • MSVC 相当于 gcc/clang 的 -Wall?

    我经常使用 GCC 或 clang 和 Wall标志已打开 现在我碰巧需要确保一个小型 C 项目 该项目可以在带有此标志的 Linux 上正常构建 也可以在带有 MSVC 的 Windows 上构建 但是 如果我运行 MSVC Wall 我
  • RegAsm regfile 开关没有提供与代码库开关相同的输出

    好吧 我知道这是非常具体的 但我为此浪费了整个工作日 所以我真的需要一些合理的解释 这样我的老板和我的妻子就不会解雇我 根据 MSDN The regfile开关 为程序集生成指定的 reg 文件 The codebase开关 在注册表中创
  • 如何将 C++ 类包装在基于 C 的 dll 或基于 CLI 的 dll 中?

    我被告知将我用 C 编写的类导入到 dll 中 然后在 c 应用程序中使用该 dll 下列的本指南 https stackoverflow com questions 4555961 how to use a class in dll我创建
  • 在 C# 中创建可移植(非安装)Windows 应用程序

    我有一个 net 3 5 应用程序 我想让它变得可移植 它很简单并且运行完美 我已将 EXE DLL 发送给一些朋友 当在同一文件夹中运行带有 DLL 和 ICO 我在其中使用过 的 exe 时 它 按预期工作 我想要的很简单 创建一个单独
  • 如何使用 C# 和 .NET 中的 C++ 库?

    我的问题与 DLL 如何导出 C 类和泛型方法 关于没有 C 并行的 C 语言功能 密切相关 我相信你可以在extern C 只需引用 DLL 并使用 DLLImport 即可从 C 中阻止 但是您可以实例化模板化的 C 类型吗 如果 C
  • 使用createremotethread注入dll

    createremotethread如何在进程内执行dll 它使用的参数之一是 loadlibraryA 所以我得到了它在进程中执行 loadlibrary 函数的部分 然后它应该将上下文切换到内核模式 dll 是否由具有 loadlibr
  • 如何获取与Windows主题相关的图标?

    如何获取Windows中某个控件的图标 更具体地说 我想从 ListView 标题中获取排序箭头图标 我尝试使用以下方法来获取它 HRESULT GetSortArrowBmp HWND hwnd HEADERSORTARROWSTATES
  • 来自外部 DLL 的未处理的 DivideByZero 异常 - C#

    我有一个 C net 4 0 程序 其主要功能是从外部 FTP 库 项目引用的 dll 调用方法 逻辑位于 try catch 块中 catch 会打印错误 异常处理程序有一个通用参数 catch Exception ex IDE是VS 有
  • 有没有工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 由于堆问题 我一直遇到崩溃问题 所以我猜想某个地方发生了缓冲区溢出 我如何检测它 I use Compuware 边界检查器 http w
  • 调试器忽略动态加载的 DLL 中的错误

    我有一个与自编码 DLL 的调试相关的非常奇怪的问题 我有一个 MFC 驱动的基于对话框的应用程序 几个静态链接的项目和几个在运行时加载的 DLL 项目 我在调试中构建解决方案 运行应用程序 然后我可以轻松调试这些 DLL 项目 现在问题来
  • 新显卡上的 nvoglv32.dll 中的绘制调用崩溃

    几天前 由于一些硬件更改 我设置了计算机并安装了新的 Windows 8 副本 其中 我将显卡从 Radeon HD 7870 更改为 Nvidia GTX 660 再次设置 Visual Studio 11 后 我从 Github 下载了
  • 使用 PIMPL 习惯用法删除 DLL 中的 std::vector 时出错

    我有以下代码 In DLL1 在 h文件中 class MyClass public MyClass private std string m name class declspec dllexport Foo private struct
  • 如何更新 C++ dll 而无需将 exe 与 lib 文件重新链接?

    首先 我指的是 Windows 环境和 VC 编译器 我想要做的是重建 Vc dll 并保持与已链接到 lib 的 exe 的兼容性 而无需重建 exe 或使用 LoadLibrary 动态加载 dll 换句话说 有没有办法向 dll 添加
  • 如何将tchar指针转换为char指针

    我想将 tchar 转换为 char 这可能吗 如果是的话该怎么做 我使用unicode设置 A TCHAR要么是一个普通的char or a wchar t取决于您的项目的设置 如果是后者 您需要使用WideCharToMultiByte
  • ctypes 加载 dll 时没有错误消息,但什么也没发生

    我尝试在ctypes中使用windll LoadLibrary将dll文件导入python 尽管没有任何错误消息 但头文件中列出的函数似乎都没有成功加载 我想知道是dll文件有问题 还是我错误地使用了windll LoadLibrary方法
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl

随机推荐

  • Mac OS X 雪豹上的 ant 默认安装在哪里?

    我没有设置ANT HOME 所以我想找到ant的主目录在哪里 我使用的是 OSX 安装中默认安装的 ant 版本 按照以下说明查找任何包的位置 whereis ant replace ant with whatever you re loo
  • 解析时 JSON 中位置 608 处出现意外字符串

    我正在尝试将我的 React 网站托管到 GitHub 但是当我尝试使用时 npm install save gh pages 我收到以下错误 Failed to parse json npm ERR JSON parse Unexpect
  • 为什么我的 Tkinter 饼图不显示?

    我正在构建一个应用程序 它接受输入 将其保存到 CSV 文件 现在最后一个基本部分是显示列内容的饼图 输入应该是关于书籍的 因此 饼图应该显示列表中所有书籍的类型 我在创建饼图时没有问题 我在单独的脚本中管理它 我也没有收到错误消息 但只有
  • JSF 转换标题属性的日期

    我需要将日期放入图像的标题属性中 以便当用户将鼠标悬停在图像上时显示该日期 问题是我想更改日期格式 有任何想法吗
  • 在子函数中访问循环迭代?

    我正在使用 Google Maps API 在地图上绘制多个点 然而 在下面的点击事件函数中 i始终设置为 4 即迭代循环后的值 note these are actual addresses in the real page var ad
  • Android apk安装:如何清除旧版本的文件?

    当我安装新版本的 apk 时 这会覆盖旧版本而不删除它 在新版本中 我删除了一些文件 使用 NDK 生成的库 但在设备上 旧文件仍然存在 如何确保每当安装新版本时 所有旧文件都会在安装前被删除 编辑 澄清 这个问题要求为我的应用程序的现有用
  • java.io.IOException:无法获取锁定

    得到错误为 java io IOException 无法获取 log abc log 的锁定 不知道为什么会发生这种情况 有人可以帮我吗 谢谢 logger LogManager getLogManager getLogger classN
  • 在临时对象上调用成员函数时生成警告

    给定一个矩阵模板类mat
  • 从 pyparsing 获取嵌套命名结果

    我正在修改 pyparsing fourFn 示例以接受变量 评估已经有效 现在我希望能够解析字符串并输出所需变量的列表 我希望它的工作方式如下 from my module parser import FormulaParser form
  • 如何显示来自单独 NIB 的工作表

    如何将一个窗口放在一个单独的 NIB 中 给它自己的 NSWindowController 让它作为一张纸滑出 这是与床单有关的典型事情吗 我试图从主窗口显示自定义工作表 从父窗口的标题栏向下滑动的窗口 我认为我想做的是标准的 但我找不到明
  • 如何检测 C# Windows 窗体代码在 Visual Studio 中执行?

    是否有变量或预处理器常量可以让您知道代码是在 Visual Studio 上下文中执行的 Try 调试器 IsAttached http msdn microsoft com en us library system diagnostics
  • PHP 按键和值比较两个多维数组

    我正忙于学习 PHP 正在寻找一种方法来通过键和值比较两个关联数组 然后找到两者的差异 即 如果我有一个关联数组 array size 2 x15z gt int 12 length 2 x16z gt int 3 length 1 另一个
  • fsevents 导致模块解析失败:意外字符“�”

    我在用next js我得到 Failed to compile node modules fsevents fsevents node 1 0 Module parse failed Unexpected character 1 0 You
  • 无法使用 xpath 获取 YouTube 视频的持续时间

    我想写一些东西来返回 YouTube 链接的视频持续时间 所以我发现requests and lxml并开始遵循this http docs python guide org en latest scenarios scrape guide
  • 使用 HTML 和 CSS 的可折叠列表

    我有一个使用 HTML 和 CSS 实现的可折叠列表 该列表工作正常 但我需要一些修改 每当我单击列表中的某个项目时 它就会展开 但是 当我单击同一列表中的另一项时 先前展开的元素会折叠 而单击的元素会展开 请帮助我应用可以同时展开多个列表
  • 比“while”循环更快的方法来查找 R 中的感染链

    我正在分析存储疾病模拟模型输出的数据的大型表 300 000 500 000 行 在模型中 景观中的动物会感染其他动物 例如 在下图示例中 动物a1感染景观中的每一种动物 并且感染从一个动物转移到另一个动物 形成感染 链 在下面的示例中 我
  • Java有惰性求值吗?

    我知道 Java 在这种情况下有智能 惰性评估 public boolean isTrue boolean a false boolean b true return b a b a b is not evaluated since b i
  • 我可以确定 KeyEventArg 是字母还是数字吗?

    有没有办法确定键是否是字母 数字 A Z 0 9 在里面KeyEventArgs 还是我必须自己做 我找到了一种方法e KeyCode http bytes com topic net answers 598606 c keyeventar
  • spring - @ContextConfiguration 无法在 src/test/resources 中加载配置文件

    我尝试使用以下抽象类在 src test resources 类路径中加载 spring 配置文件 RunWith SpringJUnit4ClassRunner class ContextConfiguration locations c
  • 从 Visual C++ DLL 导出非托管类?

    当使用 Visual C 2008 创建 DLL 时 我有几个选择 我可以创建一个 班级图书馆 我知道它实际上会给我一个使用 C 的 CLI 托管 扩展的 Net 库 因为我不希望这样 并且我假设我需要一个静态 LIB 文件来链接到另一个