草庐IT

write_external_storage

全部标签

c++ - 带有 C++ 的 extern C 是否避免了在 C 中合法但在 C++ 中不合法的未定义行为?

如果您将externC与C++文件一起使用,是否允许在C++中未定义的已定义C行为?废话.hextern"C"{structx{intblah;charbuf[];};char*get_buf(structx*base);structx*make_struct(intblah,intsize);}some_random.cpp#include"blah.h"...x*data=make_struct(7,12);std::strcpy(get_buf(data),"hello");是在C的灵活数组成员中使用定义的行为,这样使用时定义的行为? 最佳答案

c++ - 从 Windows::Storage::Streams::IBuffer 中获取字节数组

我有一个实现接口(interface)Windows::Storage::Streams::IBuffer的对象,我想从中获取一个字节数组,但是在查看该接口(interface)的文档时看起来毫无用处,并且文档没有提供对可以与此接口(interface)结合以实现我的目的的任何其他类的任何引用。到目前为止,我在google上找到的只是对.Net类WindowsRuntimeBufferExtensions的引用。但我使用的是C++,所以这也是一个死胡同。有人可以提示如何在C++中从Windows::Storage::Streams::IBuffer获取字节数组吗?

c++ - C/C++ 稀有关键字 - register、volatile、extern、explicit

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭11年前。您能否简要介绍一下这4个关键字的用途和原因?我了解google会告诉您的关于register和volatile的基本知识,但想了解更多(只是一个实用的概述)。外部和显式让我有点困惑,因为尽管做了相当低级的嵌入式系统代码,但我从来没有找到自己必须使用它们的理由。再说一次,我可以用谷歌搜索,但我更喜欢专家提供的快速实用的总结,以便牢记在心。 最佳答案

c++ - 错误 LNK2001 : unresolved external symbol "private: static class

errorLNK2001:unresolvedexternalsymbol"private:staticclassirrklang::ISoundEngine*GameEngine::Sound::_soundDevice"(?_soundDevice@Sound@GameEngine@@0PAVISoundEngine@irrklang@@A)我无法弄清楚为什么我会收到此错误。我相信我正在正确初始化。有人可以帮忙吗?声音.hclassSound{private:staticirrklang::ISoundEngine*_soundDevice;public:Sound();~Soun

c++ - extern C 和 C++ 用于单个函数(bsearch/qsort)的目的是什么?

这个问题在这里已经有了答案:Isthespecificationof`bsearch`inC++11&C++14defective?(1个回答)关闭5年前。在浏览标准草案(N4527)时,我发现了以下段落([alg.c.library]):Thefunctionsignature:bsearch(constvoid*,constvoid*,size_t,size_t,int(*)(constvoid*,constvoid*));isreplacedbythetwodeclarations:extern"C"void*bsearch(constvoid*key,constvoid*bas

c++ - 为什么 extern “C” 在这里分组 C++ 类(不是标题)?

我在搜索SVM库时遇到了BudgetedSVM.在源码中,我发现了一个不寻常的用法,就像这样:#sample.h#ifndefSAMPLE_H#defineSAMPLE_H//noheaderincludedornamespacedeclaredhere#ifdef__cplusplusextern"C"{#endif//noheaderincludedornamespacedeclaredtooclassSample:publicParent{public:Sample();~Sample();type0fun(type1val1,type2val2);...};#ifdef__cp

c++ - 创建文件 : direct write operation to raw disk "Access is denied" - Vista, Win7

相关的微软文档是:BlockingDirectWriteOperationstoVolumesandDisksCreateFile,remarksonPhysicalDisksandVolumes可执行文件是用C++编写的,它调用CreateFile()来打开一个没有无文件系统的SD卡。CreateFile()和连续的ReadFile()调用对于GENERIC_READ来说是成功的,没有管理员权限。CreateFile对GENERIC_WRITE失败,即使具有管理员权限也是如此。在资源管理器中,我在属性>兼容性>权限级别下设置了以管理员身份运行。我还尝试从管理员cmd运行可执行文件(以

C++ : Extern C Functions inside a Namespace

我必须链接两个库,比如A和B。其中一些文件在两个库中是通用的。所以,我在命名空间内的库A中声明函数,比如abc。因此,在A和B中,函数func如下所示:[inA]namespaceabc{extern"C"voidfunc();}[inB]extern"C"voidfunc();在构建项目时,编译器会抛出链接错误,说明函数func的多个定义。是不是命名空间内的A中的函数func或者外部“C”函数是否存在问题。如果有,那么我该如何区分它们呢? 最佳答案 当您使用Extern"C"时,您将关闭名称修饰,因此您会丢失命名空间信息,因为C没

c++ - c++中extern的使用

我很难理解“外部”的工作原理。我搜索了谷歌,但似乎没有我正在尝试的特定示例如果我有一个引用one.h的文件main.cpp在其中我有一个名为LIST1的列表(这是一个100x100的双数组)所以我有双List1[100][100];请问如何在one.cpp中使用此列表?externdoubleLIST1[100][100]不工作:/main.cpp:#include"one.h"externdoubleLIST1[100][100];一个.cpp:voidone::useList(){for(j=0;j这就是我所拥有的。我得到的错误:1>main.obj:errorLNK2001:un

c++ - 将 main 声明为 extern "C"是否合法 C++?

作为一名低级程序员,我经常使用可执行文件的模块启动代码,因此我非常了解“crt0”之类的代码是如何工作的。在编写C++代码时,我通常将main声明为extern"C"以匹配C启动代码将要调用main。因此,我通常将此声明用于main(如果专门针对Windows,则使用wmain):extern"C"intmain(intargv,constchar*const*argv)extern"C"int__cdeclwmain(intargv,constwchar_t*const*argv)在main上使用extern"C"是否合法?另外,对于argv的类型,constchar*const*是