草庐IT

c++ - 将结构传递给 dll

我想将几个数据传递给Dll函数,所以我正在考虑创建一个结构并通过如下结构将它们传递给Dll函数:structoptions{intop1,intop2,intop3,char*op4,...char*op10}voiddllFunction(optionsmyOptions)无论开发工具是什么,dll都应该以在Windows平台上工作的方式实现,我想知道:这样发送数据有效吗?请注意,结构成员都是基本的c类型(int、float、double、...)。为什么我担心它?如您所知,不同的编译器以不同的方式实现std类,因此您不能通过dll边界传递std类,但我不确定是否所有编译器都以相同的

c++ - MPI 在 C++ 中发送具有 vector 属性的结构

我想发送一个具有vector属性的结构。typedefstruct{intid;vectorneighbors;}Node;我知道我必须创建一个MPI派生数据类型,如thisanswer,但我不知道在我的情况下该怎么做,因为我在结构中有一个vector。 最佳答案 如果你想保持高水平并发送对象,那么Boost.MPI是个不错的选择。使用Boost.MPI,您可以为结构指定高级序列化。您不能(正确地)静态确定vector数据成员的偏移量。拼凑出一个有效的类型当然是可能的。但这也是搬起石头砸自己脚的好方法。您会在代码中引入假设(例如,v

c++ - 如何在 LLVM 中获取结构成员的值?

所以我用这个创建了一个结构类型:llvm::StructType*llvm_struct=llvm::StructType::create(llvm_context,struct_name);std::vectormembers;for(size_tj=0;j!=struct_data.members.size();j++){llvm::Type*member_type=/*getmembertype*/;members.push_back(member_type);}llvm_struct->setBody(members)我想知道如何访问结构中的成员。到目前为止,我已经尝试过使用g

C++ 在结构定义中初始化一个 vector

我正在阅读编程原理和实践C++,并遇到了以下我认为没有得到很好解释的代码structDay{vectorhour{vector(24,-777)};};这里发生了什么?当我需要一个具有默认值的特定长度的vector时,我通常使用这个初始化器:vectorhour(24,-777);但是,这种初始化方式在结构内部不起作用,structDay{vectorhour(24,-777);};导致编译错误Error(active)expectedatypespecifierHelloWorldd:\VisualStudio2015\HelloWorld\HelloWorld\HelloWorld

c++ - Doxygen 未记录的字符串值

Doxygen(1.8.10)提示我的字符串的值没有记录。这是一个演示问题的最小示例#includestructMyStruct///这会导致警告/tmp/example.cpp:10:warning:MemberfirstVal(variable)ofclassMyClassisnotdocumented.如果我将结构缩减为单个成员并从初始化程序中删除“secondVal”,则警告消失,但显然这不是解决方案... 最佳答案 只需删除多余的struct。如:#includestructMyStruct///C++不要求您使用stru

c++ - 如何以不同方式访问结构成员

我想要一个结构token,其中包含位置、句子和段落信息的开始/结束对。我还希望可以通过两种不同的方式访问成员:作为开始/结束对和单独访问。鉴于:structtoken{structstart_end{intstart;intend;};start_endpos;start_endsent;start_endpara;typedefstart_endtoken::*start_end_ptr;};我可以编写一个函数,比如distance(),它计算三个start/end对之间的距离,例如:intdistance(tokenconst&i,tokenconst&j,token::start

java - 一般套接字问题 - 将 C++ 结构从 Java 转移到 C++

我有一个一般的套接字编程问题要问你。我有一个名为Data的C结构:structdata{doublespeed;doublelength;charcarName[32];structAttribs;}structAttribs{intcolor;}我希望能够在Java中创建类似的结构,创建套接字,使用上述结构创建数据包,并将其发送到C++套接字监听器。关于序列化数据(基本上是在数据包中传输的1和0),你能告诉我什么?C++如何“读取”这些数据包并重新创建结构?这样的结构如何存储在数据包中?一般来说,您可以告诉我任何关于如何解决此类问题的想法。谢谢! 最佳答案

c# - 如何将带有 Union 的 C++ 结构转换为 C#?

伙计们,我在调用DLL中的函数后检索结构成员值时遇到困难。我尝试将C++代码转换为C#,但我不确定它是否正确。请帮助我理解我这里的错误(如果有的话)以及如何改正。我的问题是,在从DLL调用ReceiveMessage函数后,我无法正确检索INNERSTRUCTS(Union)的值。例如m_objMsg.MsgData.StartReq.MsgID始终为0。但是当我尝试使用C++.exe程序时,MsgID具有正确的值。(不是0)C++代码:externintReceiveMessage(SESSION,int,Msg*);typedefstruct{charSubsId[15];intL

c++ - 常量对象不在 rdata/rodata 部分

我无法强制msvc10将我的const对象放入.rdata部分。它总是以.data结尾,完全初始化(意味着没有动态初始化/运行时构造函数执行)。(使用“发布”版本的标准项目设置编译)。我不明白为什么以下代码不能将“obj1”放入.rdataPE部分:typedefstruct_Struct1{intm1;_Struct1(intp1):m1(p1){};_Struct1(){};}Struct1;classClass1{public:Class1(){};Class1(intp1,intp2):m1(p1),m2_struct(p2){};intm1;Struct1m2_struct;

c++ - 错误 : Invalid use of incomplete type struct Subject; error: forward declaration of struct Subject

我继承自模板类。当我进入教师类(class)时,我想进入学科类(class),反之亦然。我收到错误InvaliduseofincompletetypestructSubect;voidaddSubject(Subject*s){this->addReference(s);s->addReference(this);whenIcommentthislinetheitcompileswithouterrors,butIcannotinsertintoSubject}我的全部代码在下面#include#include#includeusingnamespacestd;classSubject