gpt4 book ai didi

c++ - 启用 Common Lanuage Runtime 时 OleInitialize 失败?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:24 25 4
gpt4 key购买 nike

我正在开发一个 wxWidgets 控制台应用程序,我想通过 CLR 从中调用一个 C# DLL。不幸的是,由于 OleInitialize 失败,应用程序在 wxWidgets 应用程序初始化代码中出现问题。我看到的错误是一个弹出窗口,简单地指出“无法初始化 OLE。”

似乎通常可以通过将指令应用到应用程序的入口点来为线程设置单元样式来避免这个问题,但我真的很难找到我正在寻找的入口点。我的 C# 代码是一个 DLL:没有特定的入口点。用/CLR 编译的代码存在于链接到我的 wxWidgets 应用程序的 .lib 中。 wxWidgets 实际上在他们的代码中定义了 WinMain,并允许我通过实现 wxApp 来覆盖行为。

其他建议包括在 wxWidgets 中禁用 OLE 支持,但在我的版本 2.8.6 中,将 wxUSE_OLE、wxUSE_CLIPBOARD、wxUSE_DATAOBJ、wxUSE_DRAG_AND_DROP 设置为 0 会在编译 wxWidgets 时创建未解析的外部。

enjoy 以前遇到过这个问题并找到了有效的解决方法吗?任何人都可以澄清我需要修改的入口点吗?

最佳答案

如我的问题所述,这是一个涉及 C++ 应用程序和 CLR 默认值之间的线程样式设置的问题。这显然是一个错误,曾几何时,Microsoft 发布了一个修复程序:

http://msdn.microsoft.com/en-us/library/s6bz81ya.aspx

使用支持 CLR 的 .lib 和/CLRTHREADATTRIBUTE:STA 重新编译可执行文件足以消除我看到的错误。

关于c++ - 启用 Common Lanuage Runtime 时 OleInitialize 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com