问题标签 [extern-c]
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.
c++ - 从 C++ 代码调用 C 函数
我有一个想从 C++ 调用的 C 函数。我不能使用“ extern "C" void foo()
”这种方法,因为 C 函数无法使用 g++ 编译。但它使用 gcc 编译得很好。任何想法如何从 C++ 调用函数?
c++ - 未解决的外部和外部“C”?
尽管我对 C++ 很陌生,但我并不完全理解这种链接和东西。我认为这是关于extern "C"
链接。
我从中得到的问题是我需要解决extern "C"
我认为的代码:
可悲的是,我不知道该怎么做,而且由于这个错误在 C++ 世界中非常普遍,因此找到答案并不容易,因为它们可能会有所不同。
希望解决这个问题很容易,因为我想我必须将它或其他东西定义为它的外部代码。
c++ - 如何布局混合 C 和 C++ 的函数原型
我有一个要包含在 .c 和 .cpp 文件中的标头。
所以我知道名称修饰和外部“C”所以......
但是当我将它包含在 .c 文件中时,它看不到该功能,因为#ifdef __cplusplus
所以我最终制作了 2 个副本:
有没有更好的方法来做到这一点......我想过制作另一个名为prototypes.h的标题并将其包含在这两个地方......但是我缺少一些简单的东西吗?
c++ - C++ 对非 C 语言的外部“C”功能
众所周知,extern "C"
向 C++ 函数声明会使它的名字具有 C 链接,从而使 C 代码能够链接。
我的问题是 - 我们可以让 C++ 函数名称链接到其他编程语言吗,比如extern "Lisp"
or extern "FORTRAN"
?
如果不是,为什么?限制的背后的内部结构是"C"
什么?
有哪些替代方案?
c++ - 是否有可能无法将 C 方法包含在 C++ 项目中?
extern "C"
我知道我可以使用这个东西在 C++ 项目中包含 C 方法。但是现在让我们假设我正在考虑创建一个 C++ 项目,该项目将使用大量 C 方法,这些方法来自我制作的库以及其他人/公司制作的库,其开发细节和编译规范我是根本不知道。
是否有可能某些具有未知编译和配置细节的 C 库方法无法包含在我的 C++ 项目中extern "C"
?还是所有 C 方法都必须 100% 兼容 C++ 代码extern "C"
?
c++ - 在函数定义中指定参数默认值会导致错误 C2143:语法错误:在 '=' 之前缺少 ')'
我有以下声明:
其中最后一个 agrument 具有默认值group_name = 0
。
当我编译 C++ DLL (/TP) 时它工作正常并且在编译宏 DLL 时如下:
但是当我尝试编译与此 DLL 链接的 C 应用程序 (/TC) 时,它会给出错误 C2143: syntax error : missing ')' before '=' 并且宏 DLL 如下:
c++ - extern "C" 和简单的 extern 之间的区别
我已经看到 C/C++ 代码使用在函数签名中声明的 extern "C" 以及在 CPP 文件中包含 C 标头。
但有些函数只是在签名之前声明 extern(没有“C”)。
QN1:
这两种定义函数的方式是否具有相同的效果,或者它们是否意味着不同的东西?
抱歉,如果我很傻,但我无法通过 Google 找到这种差异。
例如:
QN2:
如果函数在其签名中使用 extern 声明,是否有必要将相应的头文件包含在 extern "C" 块中?
正如另一位用户在评论中指出的那样,标记的副本并不完全满足这里的问题。我正在编辑,以便将来其他人不会被误导到不同的问题。
c++ - 围绕 C++ 类的 C 可调用包装器
我正在按照教程创建一个围绕 C++ 代码的包装器,以便可以从 C# 调用它。
我得到一个错误编译包装虽然。头文件.h
下面是源文件(body.cpp)
包装类/dll如下
我在 return 语句的包装类中得到了一个。由于某种原因,该类方法似乎无法被识别。错误内容如下:
错误 C2228:'.GetSum' 的左侧必须有类/结构/联合
令我困惑的是,这是教程中的复制和粘贴,但我的不起作用。我会错过什么?
c++ - 错误 LNK2019:未解析的外部符号
我在 Windows 7 Visual Studio 2010 中编译旧的 MFC WIN CE 嵌入式项目时遇到问题。我相信旧应用程序是在嵌入式 Visual Studio 4 中编译的并且需要 mfcce211.dll。
任何人,所有源文件都可以正常编译,但我收到以下链接器错误:
VirtualCopy 在文件 TX3922.cpp 中的 CTX3922::Initialise 中被调用,并包含:
项目属性为:
- 在共享 DLL 中使用 MFC
- 不使用 ATL
- 没有公共语言运行时支持
启用 /NODEFAULTLIB 会引发很多链接器错误,包括这个错误。
我在任何地方都找不到 VirtualCopy 的声明
我错过了一个图书馆,如果是这样,有没有找到哪一个?
非常感谢
c++ - 错误:extern "C" 上的预期 unqualified-id
我有一个 cpp 代码,我想在其中调用 ac 函数。两者都可以很好地编译为 .o 文件,但是当 clang++ 正在执行编译时,我收到以下错误:
cpp文件中的代码如下:
我怎样才能避免错误?不能用clang++编译c文件,真的需要用extern。谢谢。