草庐IT

external-system

全部标签

c++ - extern "C"默认参数是否有效?

来自Here似乎C不支持默认参数。我在导出的库中有以下方法:extern"C"{__declspec(dllexport)uintptr_tMethod(intfreq,int*pRetval,bool*support2MHz);}如果我像这样将最后一个参数设为可选:extern"C"{__declspec(dllexport)uintptr_tMethod(intfreq,int*pRetval,bool*support2MHz=NULL);}我的dll仍在编译中。我的问题是为什么?每个人都说C代码不支持默认参数。我在MS2015中使用C++。 最佳答案

c++ - Unresolved external (抽象类构造函数/析构函数)

所以,我有一个抽象类Panel和它的一个实现MyPanel。它们看起来类似于:classPanel:publicQWidget{public:Panel(QWidget*parent=0)=0;virtual~Panel()=0;//butwait,there'smore!!};classMyPanel:publicPanel{public:MyPanel(QWidget*parent=0);~MyPanel(){};//nothingtodohere};MyPanel::MyPanel(QWidget*parent):Panel(parent){//youmustconstructa

c++ - Unresolved external

我有一个Unresolvedexternalsymbol错误,这让我抓狂。简而言之,我有一个用于SDL_Surfaces('DgSurface')的包装类和一个用于加载和存储DgSurfaces('DgSurfaceList')的类。尝试在我的项目中包含DgSurfaceList文件时出现链接问题。这是我的类(class):头文件“DgSurface.h”包含DgSurface类声明:#ifndefDGSURFACE_H#defineDGSURFACE_H#include"SDL.h"#includeclassDgSurface{public://Constructor/destruc

.net - 如何将 System::String^ 转换为 std::string?

所以我在clr中工作,在VisualC++中创建.netdll。我相信这样的代码:staticboolInitFile(System::String^fileName,System::String^container){returnenc.InitFile(std::string(fileName),std::string(container));}有编码器通常resivesstd::string。但是如果我从std::string和C2440中删除参数,编译器(visualstudio)会给我C2664错误,这通常是相同的。VS告诉我它不能将System::String^转换为std

【Unity】框架设计(三) Odin编辑器窗口扩展,Asset资源的创建和管理(脚本文件创建、预制体、System.IO、AssetDatabase、Selection)

前言当游戏规模开始大时,为了制作游戏后期的维护性,就可以考虑做资源管理和编辑器扩展了。一是可以集成一些制作流程,省去一些重复操作的步骤,二是更方便项目数据的规范和管理性。今天来分享一下如何在unity中做编辑器窗口的拓展,并实现一些简单的功能。例如根据模板自动创建脚本(System.IO)、创建预制体(AssetDatabase)、读取指定文件夹下的资源、根据鼠标选中的资源批量创建ScriptableObject等(Selection)。实现效果如下图:功能实现因为本期所有内容均是在Unity编辑器内的内容,在游戏运行或者打包出来时并不起到作用,因此本期的脚本建议都放在项目Assets/Edi

C++ 错误 LNK2001 : unresolved external symbol function _main

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?我正在学习C++,但在我的项目中遇到编译问题。我已经阅读了大量标题上有此错误的帖子,但我找不到问题出在哪里。我的Main函数中有一个方法调用是导致错误的原因。每当我评论该项目编译完美的行。代码如下:main.cpp#pragmaonce#include"stdafx.h"#include#include#include#include#include#include"N

c++ - extern 关键字真的有必要吗?

...#include"test1.h"intmain(..){countaaa定义在test1.h中,我没有使用extern关键字,但仍然可以引用aaa。所以我怀疑extern真的有必要吗? 最佳答案 extern有其用途。但它主要涉及不受欢迎的“全局变量”。extern背后的主要思想是用外部链接来声明事物。因此,它有点与static相反。但在许多情况下,外部链接是默认链接,因此在这些情况下您不需要extern。extern的另一个用途是:它可以将定义变成声明。示例:externinti;//Declarationofiwithe

C++ std::system 'system' 不是 std 的成员

我在编译C++程序时收到一个错误,其中的行从“std::system(SomeString)”进行调用。这个程序是3年前编译的,但今天编译时,我收到一个错误,指出“system”不是“std”的成员。有没有我必须导入才能使用std::system的东西,它是否已被放弃,或者是否已移至另一个头文件。 最佳答案 std::system是(并且一直是)在.C++标准没有定义标准头是否相互包含,如果包含哪些。因此,3年前,在不同的编译器或同一编译器的不同版本上,您的代码可能会意外运行,因为您包含的其中一个header恰好包含.在您现在使用的

c++ - 未定义对 'boost::system::generic_category()' 的引用?

看来我看不到明显的东西。我想为我的项目使用一些Boost库功能,并且知道我突然遇到了这些好错误:LinkingCXXexecutableATFORCMakeFiles/ATFOR.dir/stdafx.cc.o:Infunction__static_initialization_and_destruction_0(int,int)':stdafx.cc:(.text+0x3c):undefinedreferencetoboost::system::generic_category()'stdafx.cc:(.text+0x48):undefinedreferencetoboost::s

c++ - extern "C"static void* 函数

在阅读了extern和static之后,我很困惑地遇到了具有以下行的代码:extern"C"staticvoid*foo(int*a){returnfoo1(a);}为什么这不会产生任何错误? 最佳答案 以下内容也编译并执行与您的行相同的操作:extern"C"{staticvoid*foo(int*a){returnfoo1(a);}}static意味着foo()将只在文件范围内可用,当它出现时它会覆盖extern"C"到联动。通常,extern"C"会影响链接器在导出时使用的函数的名称,以便在链接整个程序时可以从其他目标文件调用