问题标签 [linkage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
294 浏览

boost - 在 C++ 应用程序中可以使用多个 Boost.Thread 实例吗?

我有一个使用 Boost.Threads 作为 DLL(特别是 Mac OS X 框架)的插件架构的应用程序。我正在尝试编写一个也使用 Boost.Threads 的插件,并希望静态链接到库中。一切正常,但应用程序很快在我的插件中崩溃,在 Boost.Threads 代码的深处。链接到 Boost.Threads 的 DLL 版本似乎可以解决问题,但我希望我的插件是独立的。

是否可以有两个具有这种设置的 Boost.Threads 实例(一个作为 DLL,一个静态链接在另一个 DLL 中)?如果是这样,我可能缺少什么来使这两个实例相处融洽?

0 投票
1 回答
1116 浏览

c++ - 如何删除“ImageList_Read”:不一致的 dll 链接警告?

当我构建我的 Visual C++ 解决方案 (2005) 时,我收到以下警告

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(678) : 参见之前的“ImageList_Read”定义

1>e:\xml parse\development\gui\h\wtl4mfc.h(6) : 警告 C4273: 'ImageList_Write' : 不一致的 dll 链接

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(679) : 参见之前的“ImageList_Write”定义

1>e:\xml parse\development\gui\h\wtl4mfc.h(8) : 警告 C4273: 'ImageList_ReadEx' : 不一致的 dll 链接

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(686) : 参见之前的“ImageList_ReadEx”定义

1>e:\xml parse\development\gui\h\wtl4mfc.h(9) : 警告 C4273: 'ImageList_WriteEx' : 不一致的 dll 链接

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(687) : 参见之前的“ImageList_WriteEx”定义

当我检查这两个文件时,我可以看到以下内容:

****在wtl4mfc.h中****

extern "C" { HIMAGELIST WINAPI ImageList_Read(LPSTREAM pstm); BOOL WINAPI ImageList_Write(HIMAGELIST himl, LPSTREAM pstm);

#if (_WIN32_WINNT >= 0x0501) HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags, LPSTREAM pstm, REFIID riid, PVOID* ppv); HRESULT WINAPI ImageList_WriteEx(HIMAGELIST himl, DWORD dwFlags, LPSTREAM pstm);

#万一 };

在 commctrl.h文件中,我可以看到以下内容:

WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Read(__in struct IStream *pstm); WINCOMMCTRLAPI BOOL WINAPI ImageList_Write(__in HIMAGELIST himl, __in struct IStream *pstm);

我是 Visual C++ 的初学者,这是来自可供我维护的代码。如何删除这些警告?如果我在安装了较低版本的 Winddk 的位置构建代码,则不会显示这些警告。

是什么导致了这些警告?我怎样才能删除它们?

0 投票
1 回答
1518 浏览

flash - 在舞台上动态放置 MovieClip 的实例 (AS3)

我正在尝试在舞台上动态放置 MovieClip 的实例。收到错误:

动作脚本:

0 投票
3 回答
895 浏览

c++ - C++中的编译过程

我将非常感激,如果有人能真正解释当我按下按钮 BUILD 时我的编译器究竟做了什么,并且编译器开始编译我的所有 .h 和 .cpp 文件这个过程到底是如何进行的(我在目标文件中有什么?),我为什么要问这样的问题?我试图从 Meyers 的书中了解大约 50 种特定方式的“最小化文件之间的编译依赖关系”是什么意思......(希望你知道这本书),他在那里解释了抽象基类和句柄类是什么意思,正如我的讲师向我解释的那样,我不需要包含过多的 .h 文件,仅此而已,任何有关编译过程的链接也将不胜感激,在此先感谢您的帮助

0 投票
1 回答
2806 浏览

windows - 如何在具有 VS2008 运行时的 Windows 上使用静态链接在 Qt 创建器中构建 Qt 应用程序?

我已经从诺基亚网站下载了 qt-win-opensource-4.7.0-vs2008.exe 并在构建我的应用程序时使用它。我的应用程序确实使用 VS2008 运行时而不是 MinGW,但它与 QtCore4.dll 和其他 Qt 库具有动态链接。如何创建与 qt 库的静态链接的应用程序?

0 投票
2 回答
836 浏览

c++ - 链接错误 C++ 未解析的外部符号

我正在编写一个矩阵程序:我有一个表示正则矩阵 (RegMatrix) 的类和一个表示稀疏矩阵 (SparseMatrix) 的类,即:仅表示非零值。

在每个 H 文件的开头,我编写了相反的类声明。例如,在 SparseMatrix.h 中,我编写了 RegMatrix 类(以便编译器识别我对此类的引用)。在每个 cpp 文件中,我都包含两个 H 文件。

我的程序可以编译,但我有很多链接错误,说“未解析的外部符号..”

例如:未解析的外部符号 "public: int__thiscall RegMatrix::getCol(void)const " (?getCol@RegMatrix@@QBEHXZ)" [file: SparseMatrix.obj]

我要疯了,想弄清楚我的代码出了什么问题。

0 投票
2 回答
153 浏览

c++ - 外部联动

$3.5/2-“当一个名称有外部链接时,它所表示的实体可以被其他翻译单元的范围同一翻译单元的其他范围的名称引用。”

突出显示的“或”不应该是“”,还是我解释一些英语内容的日子不对?

另一个问题是,标准文件(最终定稿)是否需要经过专家的语法审查?

0 投票
2 回答
578 浏览

c++ - extern "C" (C 链接) 默认情况下

问题

GCC、MSVC 或 Clang 或某些组合是否支持将链接设置为默认为 C?

背景

我有一个大型混合 C/C++ 项目,虽然使用 C 链接导出 C++ 源中的符号很容易且合乎逻辑,但这些相同的源假设项目其余部分中的东西在 C++ 链接下。

目前的情况要求我明确地包装 C 源代码中定义的 C 源代码使用的任何内容,以及 C++ 源代码使用的 C 源代码中的所有内容extern "C++"

最重要的是,我不能放置extern "C"整个源文件或头文件,因为实际的 C++ 内容会抱怨。(例如#include <memory>我定义的 from 或 templates。)

0 投票
1 回答
993 浏览

c++ - 类名的链接

$3.5 - “此外,如果类的名称具有外部链接,则成员函数、静态数据成员、类或类范围的枚举具有外部链接。”

关于这意味着什么的任何输入'if the name of the class has external linkage'

与命名空间范围中定义的类和使用静态说明符定义的命名空间范围类(具有内部链接???)相比,“本地类”(可能没有任何链接)的提示是什么?

0 投票
3 回答
9207 浏览

c++ - 常规命名空间内匿名命名空间内的符号链接

在 C++ 中,将函数或变量放在匿名命名空间中会使其内部链接,即与static在文件级别声明它相同,但符合 C++ 习惯。

普通命名空间中的匿名命名空间呢?是否还保证内部联动?