问题标签 [extern]
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++ - 如何停止对我的 DLL 导出函数的名称修改?
我正在尝试创建一个导出名为“GetName”的函数的 DLL。我希望其他代码能够调用此函数而不必知道损坏的函数名称。
我的头文件如下所示:
我的代码如下所示:
当我构建时,DLL 仍然导出名称为:“_GetName@0”的函数。
我究竟做错了什么?
c# - 如何设置 C++ 函数以便 p/invoke 可以使用它?
希望这是一个简单粗暴的问题,但这表明我缺乏 C++ 专业知识。我是一名 C# 程序员,过去我曾使用 P/Invoke 和其他人的 C++/C dll 进行过大量工作。但是,这一次我决定自己编写一个包装器 C++ dll(非托管),然后从 C# 调用我的包装器 dll。
我立即遇到的问题是我无法定义 p/invoke 可以找到的 C++ 函数。我不知道它的语法是什么,但这是我目前正在尝试的:
最初我只是有这个,但它也不起作用:
然后在 C# 方面,我有:
一切都可以编译,但是当我执行这个 C# p/invoke 调用时,我得到一个 System.EntryPointNotFoundException: Unable to find an entry point named 'TestFunc' in DLL 'Plugins\TestDLL.dll'。
当然,这在 C++ 端一定是非常简单的东西,我只是不知道它的语法。
c++ - 在 dll 项目之间使用外部方法?
我有一个调试条件来管理我拥有的内存
这存在于Memory.h中并在 Memory.cpp 中实现。Memory.h 定义为:
现在,我有SoundStuff.h和SoundStuff.cpp,它们位于一个单独的项目中,也以与上述类似的方式转换为 dll。所属项目对SoundStuff
所属项目具有项目依赖关系Memory
。在 SoundStuff.cpp 的实现中FUN_DELETE
,来自Memory.h的 被调用。它是通过单独项目中的函数调用的,但无论如何都会调用它。这会导致链接器错误。
错误 LNK2019:未解析的外部符号“void __cdecl operator delete(void *,char const *,int)”(??3@YAXPAXPBDH@Z) 在函数 __unwindfunclet$?Init@SoundStuff@@AAEXXZ$1 SoundStuff.obj 中引用
为什么会这样,我该如何解决?
c++ - 'operator new':重新定义,不同的链接(在重新定义的新运算符上使用 _dllspec)
我在 new 的调试版本上使用 __declspec(dllimport/export) :
这导致我得到
错误 C2375:“新操作员”:重新定义;不同的联动。
为什么会这样,你怎么能解决它?这是我现在正在编译的唯一项目。
c# - C#:在 shlwapi.dll 中实现或替代 StrCmpLogicalW
为了在我的应用程序中进行自然排序,我目前在 shlwapi.dll 中 P/Invoke 一个名为 StrCmpLogicalW 的函数。我正在考虑尝试在 Mono 下运行我的应用程序,但是当然我不能拥有这个 P/Invoke 的东西(据我所知)。
是否有可能在某处看到该方法的实现,或者是否有一个好的、干净和高效的 C# 片段可以做同样的事情?
我的代码目前如下所示:
所以,我正在寻找的是不使用外部函数的上述类的替代方案。
c++ - 来自 C++ 源代码的 C-DLL
我的 C++ 框架有一个 C-Wrapper。因为这应该在 mac 和 windows 上运行,所以我使用scons:
warplib.cpp 和 warplib.h 的简单版本如下所示:
warplib.cpp
warplib.h
谁能告诉我这有什么问题?我尝试了几乎所有可能的 'extern "C"' 组合,但它总是向我抛出类似“错误 C2732:链接规范与 '...' 的早期规范相矛盾”之类的东西。
如果我跳过 'extern "C"' 它可以工作,但我看不到 .lib 文件,我很确定我需要它才能真正使用该库。
c - 在 C 中使用 extern 不能按预期工作
我创建了两个文件:
可调参数.h
和可调参数.c
我项目的所有其他文件都包括“ tunables.h ”。当我加载项目时,Ac 和 Bc 都调用tunables_load_conservative但如果过了一会儿,我在文件 Bc 中调用文件 Ac tunables_load_aggressive() , timer_x仍然为 3。为什么?
这是我的 Makefile:
c++ - 在 C 中使用“extern”存储类说明符
以下 extern specifer 的示例用法如何表现。
我们在文件 one.c 和 two.c 中都有一个全局变量 int x 我们想在 three.c 中使用它们,所以在 three.c 中声明这个变量为
extern int x;
当我们编译和链接这些文件时会发生什么?
我的回答是:所有这些文件的编译都应该成功,但是链接器应该在链接时标记一个错误,因为 x.xml 的多个声明。C++ 中的行为会有什么不同吗?
这些是在 C 和 C++ 中同时从两个文件中引用 int x (在三个.c 中)的任何方式。在 C++ 中,我想我们可以使用命名空间来实现这一点。对?
c++ - C++ 外部类定义
我正在阅读一些代码:
extern 是指类声明还是实例?
c++ - 混合外部和常量
我可以将 extern 和 const 混合为extern const吗?如果是,const限定符是否仅在它声明的范围内强加它的统治,还是应该完全匹配它声明的翻译单元的声明?extern const int i;
即,即使实际i不是 const ,我也可以声明说,反之亦然?