Как я могу преобразовать структуру c# в структуру c ++C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу преобразовать структуру c# в структуру c ++

Сообщение Anonymous »

Как я могу преобразовать структуру C# в C ++?evalExpr(Tabledefault);
< /code>
, что должно быть: < /p>
evalExpr(Magnitude);
< /code>
Я обнаружил, что это связано с тем, что я преобразовываю СТУКТ C# в C ++, смещение не совсем верно. < /p>
Оригинальный C# struct: < /p>
public class AttribModDef : IStructure
{
[DataMember(Order = 2, EmitDefaultValue = false)]
public string Notes;

public AttribType Attrib;

public DamageAlias Damagealias;

public AttribAspect Aspect;

[DataMember(Order = 6, EmitDefaultValue = false)]
public object Params;

[DataMember(Order = 7, EmitDefaultValue = false)]
public PowerTagsStruct Tags;

[DataMember(Order = 8, EmitDefaultValue = false)]
public int _;

[DataMember(Order = 9, EmitDefaultValue = false)]
public float Applypriority;

[DataMember(Order = 10, EmitDefaultValue = false)]
public int Key;

[DataMember(Order = 11, EmitDefaultValue = false)]
public Expression Exprblockduration;

[DataMember(Order = 14, EmitDefaultValue = false)]
public Expression Exprblockmagnitude;

[DataMember(Order = 17, EmitDefaultValue = false)]
public string Tabledefault;

[DataMember(Order = 18, EmitDefaultValue = false)]
public Expression Exprblockattribvar0;

[DataMember(Order = 20, EmitDefaultValue = false)]
public Expression Exprblockattribvar1;

[DataMember(Order = 22, EmitDefaultValue = false)]
public Expression Exprblockattribvar2;

[DataMember(Order = 24, EmitDefaultValue = false)]
public float Variance;

[DataMember(Order = 25, EmitDefaultValue = false)]
public float Threatbonus;

[DataMember(Order = 26, EmitDefaultValue = false)]
public ModDefFragility Fragility;

public List Sensitivity;

[DataMember(Order = 28, EmitDefaultValue = false)]
public float Sensitivitystrength;

[DataMember(Order = 29, EmitDefaultValue = false)]
public float Sensitivityresistance;

[DataMember(Order = 30, EmitDefaultValue = false)]
public float Sensitivityimmune;

[DataMember(Order = 31, EmitDefaultValue = false)]
public float Delay;

[DataMember(Order = 32, EmitDefaultValue = false)]
public float Period;

[DataMember(Order = 33, EmitDefaultValue = false)]
public float Internalcooldown;

[DataMember(Order = 34, EmitDefaultValue = false)]
public Expression Exprblockrequires;

[DataMember(Order = 37, EmitDefaultValue = false)]
public Expression Exprblockaffects;

[DataMember(Order = 40, EmitDefaultValue = false)]
public Expression Exprblockignores;

[DataMember(Order = 43, EmitDefaultValue = false)]
public PowerTagsStruct Affectstags;

[DataMember(Order = 44, EmitDefaultValue = false)]
public PowerTagsStruct Ignorestags;

public List Affectspowercategories;

public List Ignorespowercategories;

public List Affectstargetswithmodes;

[DataMember(Order = 48, EmitDefaultValue = false)]
public PowerTagsStruct Affectstargetsaffectedbytags;

[DataMember(Order = 49, EmitDefaultValue = false)]
public float Arcaffects;

[DataMember(Order = 50, EmitDefaultValue = false)]
public float Yaw;

[DataMember(Order = 51, EmitDefaultValue = false)]
public Expression Exprchanceblock;

public List Combatevents;

[DataMember(Order = 54, EmitDefaultValue = false)]
public float Combateventtime;

[DataMember(Order = 55, EmitDefaultValue = false)]
public ModExpiration Expiration;

[DataMember(Order = 56, EmitDefaultValue = false)]
public int Stacklimit;

[DataMember(Order = 57, EmitDefaultValue = false)]
public int Internalstacklimit;

[DataMember(Order = 58, EmitDefaultValue = false)]
public AttribModAnimFX Animfx;

[DataMember(Order = 59, EmitDefaultValue = false)]
public List Continuingbits;

[DataMember(Order = 60, EmitDefaultValue = false)]
public List Stanceword;

[DataMember(Order = 61, EmitDefaultValue = false)]
public string Animkeyword;

[DataMember(Order = 62, EmitDefaultValue = false)]
public List Continuingfx;

[DataMember(Order = 63, EmitDefaultValue = false)]
public List Continuingfxparamblock;

[DataMember(Order = 65, EmitDefaultValue = false)]
public List Conditionalbits;

[DataMember(Order = 66, EmitDefaultValue = false)]
public List Conditionalstanceword;

[DataMember(Order = 67, EmitDefaultValue = false)]
public List Conditionalfx;

[DataMember(Order = 68, EmitDefaultValue = false)]
public List Conditionalfxparamblock;

[DataMember(Order = 70, EmitDefaultValue = false)]
public DisplayMessage Msgdisablemessageoverride;

[DataMember(Order = 71, EmitDefaultValue = false)]
public DisplayMessage Msgautodesc;

[DataMember(Order = 72, EmitDefaultValue = false)]
public int Autodescpriority;

[DataMember(Order = 73, EmitDefaultValue = false)]
public int Autodescorder;

[DataMember(Order = 74, EmitDefaultValue = false)]
public uint Autodesckey;

[DataMember(Order = 75, EmitDefaultValue = false)]
public float Autodescmagnitudescale;

[DataMember(Order = 76, EmitDefaultValue = false)]
public NullStruct null;

public ModTarget Target;

public ModType Type;

public ModHitTest Hittest;

public CombatTrackerFlag Flags;

public List Trackertags;

[DataMember(Order = 82, EmitDefaultValue = false)]
public List Procpowers;

public CombatEventResponse CombatEventResponse;

public StackEntity Stackentity;

public StackType Stack;

public ModStackGroup Stackgroup;

public ModStackGroup Stackgrouppending;

[DataMember(Order = 88, EmitDefaultValue = false)]
public uint Continuingfxaslocation;

[DataMember(Order = 89, EmitDefaultValue = false)]
public uint Personal;

[DataMember(Order = 90, EmitDefaultValue = false)]
public uint Enhancementextension;

[DataMember(Order = 92, EmitDefaultValue = false)]
public uint Permoddamageextension;

[DataMember(Order = 93, EmitDefaultValue = false)]
public uint Ignorefirsttick;

[DataMember(Order = 94, EmitDefaultValue = false)]
public uint Replacekeepstimer;

[DataMember(Order = 95, EmitDefaultValue = false)]
public uint Chancenormalized;

[DataMember(Order = 96, EmitDefaultValue = false)]
public uint Cancelonchance;

[DataMember(Order = 97, EmitDefaultValue = false)]
public uint Survivetargetdeath;

[DataMember(Order = 98, EmitDefaultValue = false)]
public uint Keepwhenimmune;

[DataMember(Order = 99, EmitDefaultValue = false)]
public uint Ignoreattribmodexpire;

[DataMember(Order = 100, EmitDefaultValue = false)]
public uint Autodescdisabled;

[DataMember(Order = 101, EmitDefaultValue = false)]
public uint Autodescmessageonly;

[DataMember(Order = 102, EmitDefaultValue = false)]
public uint Ignoredduringpvp;

[DataMember(Order = 103, EmitDefaultValue = false)]
public uint Powerinstancestacking;

[DataMember(Order = 104, EmitDefaultValue = false)]
public uint Processofflinetimeonlogin;

[DataMember(Order = 105, EmitDefaultValue = false)]
public uint Uishowspecial;

[DataMember(Order = 106, EmitDefaultValue = false)]
public uint Uiforceshowduration;

[DataMember(Order = 107, EmitDefaultValue = false)]
public uint Notifygameeventonapplication;

[DataMember(Order = 108, EmitDefaultValue = false)]
public uint Includeinestimateddamage;

[DataMember(Order = 109, EmitDefaultValue = false)]
public uint Forever;

[DataMember(Order = 110, EmitDefaultValue = false)]
public uint Hascontinuingfx;

[DataMember(Order = 111, EmitDefaultValue = false)]
public uint Hasanimfx;

[DataMember(Order = 112, EmitDefaultValue = false)]
public uint Saveapplystrengths;

[DataMember(Order = 113, EmitDefaultValue = false)]
public uint Entcreatesaveapplystrengths;

[DataMember(Order = 114, EmitDefaultValue = false)]
public uint Savesourcedetails;

[DataMember(Order = 115, EmitDefaultValue = false)]
public uint Savehue;

[DataMember(Order = 116, EmitDefaultValue = false)]
public uint Powericoncfx;

[DataMember(Order = 117, EmitDefaultValue = false)]
public uint Attriblinktosource;

[DataMember(Order = 118, EmitDefaultValue = false)]
public uint Affectsonlyonfirstmodtick;

[DataMember(Order = 119, EmitDefaultValue = false)]
public uint Deactivationleavesmod;

[DataMember(Order = 120, EmitDefaultValue = false)]
public uint Allowduplicateanimfxstart;

[DataMember(Order = 121, EmitDefaultValue = false)]
public uint Refreshandaddmagnitudedurationisaveraged;

[DataMember(Order = 122, EmitDefaultValue = false)]
public uint Onlyapplydamagetoshields;

[DataMember(Order = 123, EmitDefaultValue = false)]
public uint Durationisalwaysfulllength;

[DataMember(Order = 124, EmitDefaultValue = false)]
public uint Usefixedstrmult;

private static readonly Type[] _ValidForParams;
}
< /code>
Структура C ++, которую я сделал: < /p>
struct AttribModDef
{
char* Notes;
AttribType Attrib;
DamageAlias Damagealias;
AttribAspect Aspect;
AttribModDefParams Params;
PowerTagsStruct Tags;
int unknown_0;
float Applypriority;
int Key;
Expression* Exprblockduration;
Expression* Exprblockmagnitude;
char* Tabledefault;
Expression* Exprblockattribvar0;
Expression* Exprblockattribvar1;
Expression* Exprblockattribvar2;
float Variance;
float Threatbonus;
ModDefFragility Fragility;

std::vector Sensitivities;

float Sensitivitystrength;
float Sensitivityresistance;
float Sensitivityimmune;
float Delay;
float Period;
float Internalcooldown;
Expression* Exprblockrequires;
Expression* Exprblockaffects;
Expression* Exprblockignores;
PowerTagsStruct Affectstags;
PowerTagsStruct Ignorestags;

std::vector pAffectspowercategories;
std::vector pIgnorespowercategories;

std::vector Affectstargetswithmodes;

PowerTagsStruct Affectstargetsaffectedbytags;
float Arcaffects;
float Yaw;
Expression* Exprchanceblock;

std::vector pCombatevents;
int numCombatevents;

float Combateventtime;
ModExpiration Expiration;
int Stacklimit;
int Internalstacklimit;
void* Animfx;

std::vector Continuingbits;
std::vector Stanceword;
char* Animkeyword;
std::vector Continuingfx;
std::vector Continuingfxparamblock;
std::vector Conditionalbits;
std::vector Conditionalstanceword;
std::vector Conditionalfx;

std::vector Conditionalfxparamblock;
void* Msgdisablemessageoverride;
void* Msgautodesc;
int Autodescpriority;
int Autodescorder;
unsigned int Autodesckey;
float Autodescmagnitudescale;
void* Gamespecificdata;
int Target;
int Type;
int Hittest;
int Flags;
std::vector Trackertags;
std::vector Procpowers;
int CombatEventResponse;
void* Stackentity;
StackType Stack;
ModStackGroup Stackgroup;
ModStackGroup Stackgrouppending;

unsigned int Continuingfxaslocation;
unsigned int Personal;
unsigned int Enhancementextension;
unsigned int Permoddamageextension;
unsigned int Ignorefirsttick;
unsigned int Replacekeepstimer;
unsigned int Chancenormalized;
unsigned int Cancelonchance;
unsigned int Survivetargetdeath;
unsigned int Keepwhenimmune;
unsigned int Ignoreattribmodexpire;
unsigned int Autodescdisabled;
unsigned int Autodescmessageonly;
unsigned int Ignoredduringpvp;
unsigned int Powerinstancestacking;
unsigned int Processofflinetimeonlogin;
unsigned int Uishowspecial;
unsigned int Uiforceshowduration;
unsigned int Notifygameeventonapplication;
unsigned int Includeinestimateddamage;
unsigned int Forever;
unsigned int Hascontinuingfx;
unsigned int Hasanimfx;
unsigned int Saveapplystrengths;
unsigned int Entcreatesaveapplystrengths;
unsigned int Savesourcedetails;
unsigned int Savehue;
unsigned int Powericoncfx;
unsigned int Attriblinktosource;
unsigned int Affectsonlyonfirstmodtick;
unsigned int Deactivationleavesmod;
unsigned int Allowduplicateanimfxstart;
unsigned int Refreshandaddmagnitudedurationisaveraged;
unsigned int Onlyapplydamagetoshields;
unsigned int Durationisalwaysfulllength;
unsigned int Usefixedstrmult;
};
< /code>
in ida: < / p > < b r / > < p r e c l a s s = " l a n g - c p p p r e t t y p r i n t - o v e r r i d e " > < c o d e > 0 0 0 0 0 0 0 0 s t r u c t A t t r i b M o d D e f / / s i z e o f = 0 x 2 B 8 < b r / > 0 0 0 0 0 0 0 0 { < b r / > 0 0 0 0 0 0 0 0 c h a r * N o t e s ; < b r / > 0 0 0 0 0 0 0 8 A t t r i b T y p e A t t r i b ; < b r / > 0 0 0 0 0 0 0 C D a m a g e A l i a s D a m a g e a l i a s ; < b r / > 0 0 0 0 0 0 1 0 A t t r i b A s p e c t A s p e c t ; < b r / > 0 0 0 0 0 0 1 4 A t t r i b M o d D e f P a r a m s P a r a m s ; < b r / > 0 0 0 0 0 0 1 8 P o w e r T a g s S t ruct Tags;
00000020 int unknown_0;
00000024 float Applypriority;
00000028 int Key;
0000002C // padding byte
0000002D // padding byte
0000002E // padding byte
0000002F // padding byte
00000030 Expression *Exprblockduration;
00000038 Expression *Exprblockmagnitude;
00000040 char *Tabledefault;
00000048 Expression *Exprblockattribvar0;
00000050 Expression *Exprblockattribvar1;
00000058 Expression *Exprblockattribvar2;
00000060 float Variance;
00000064 float Threatbonus;
00000068 ModDefFragility Fragility;
000000C0 void *Sensitivities;
000000C8 float Sensitivitystrength;
000000CC float Sensitivityresistance;
000000D0 float Sensitivityimmune;
000000D4 float Delay;
000000D8 float Period;
000000DC float Internalcooldown;
000000E0 Expression *Exprblockrequires;
000000E8 Expression *Exprblockaffects;
000000F0 Expression *Exprblockignores;
000000F8 PowerTagsStruct Affectstags;
00000100 PowerTagsStruct Ignorestags;
00000108 void *pAffectspowercategories;
00000110 void *pIgnorespowercategories;
00000118 void *Affectstargetswithmodes;
00000120 PowerTagsStruct Affectstargetsaffectedbytags;
00000128 float Arcaffects;
0000012C float Yaw;
00000130 Expression *Exprchanceblock;
00000138 void *pCombatevents;
00000140 int numCombatevents;
00000144 float Combateventtime;
00000148 ModExpiration Expiration;
00000168 int Stacklimit;
0000016C int Internalstacklimit;
00000170 void *Animfx;
00000178 void *Continuingbits;
00000180 void *Stanceword;
00000188 char *Animkeyword;
00000190 void *Continuingfx;
00000198 void *Continuingfxparamblock;
000001A0 void *Conditionalbits;
000001A8 void *Conditionalstanceword;
000001B0 void *Conditionalfx;
000001B8 void *Conditionalfxparamblock;
000001C0 void *Msgdisablemessageoverride;
000001C8 void *Msgautodesc;
000001D0 int Autodescpriority;
000001D4 int Autodescorder;
000001D8 unsigned int Autodesckey;
000001DC float Autodescmagnitudescale;
000001E0 void *Gamespecificdata;
000001E8 int Target;
000001EC int Type;
000001F0 int Hittest;
000001F4 int Flags;
000001F8 void *Trackertags;
00000200 void *Procpowers;
00000208 int CombatEventResponse;
0000020C // padding byte
0000020D // padding byte
0000020E // padding byte
0000020F // padding byte
00000210 void *Stackentity;
00000218 StackType Stack;
0000021C ModStackGroup Stackgroup;
00000220 ModStackGroup Stackgrouppending;
00000224 unsigned int Continuingfxaslocation;
00000228 unsigned int Personal;
0000022C unsigned int Enhancementextension;
00000230 unsigned int Permoddamageextension;
00000234 unsigned int Ignorefirsttick;
00000238 unsigned int Replacekeepstimer;
0000023C unsigned int Chancenormalized;
00000240 unsigned int Cancelonchance;
00000244 unsigned int Survivetargetdeath;
00000248 unsigned int Keepwhenimmune;
0000024C unsigned int Ignoreattribmodexpire;
00000250 unsigned int Autodescdisabled;
00000254 unsigned int Autodescmessageonly;
00000258 unsigned int Ignoredduringpvp;
0000025C unsigned int Powerinstancestacking;
00000260 unsigned int Processofflinetimeonlogin;
00000264 unsigned int Uishowspecial;
00000268 unsigned int Uiforceshowduration;
0000026C unsigned int Notifygameeventonapplication;
00000270 unsigned int Includeinestimateddamage;
00000274 unsigned int Forever;
00000278 unsigned int Hascontinuingfx;
0000027C unsigned int Hasanimfx;
00000280 unsigned int Saveapplystrengths;
00000284 unsigned int Entcreatesaveapplystrengths;
00000288 unsigned int Savesourcedetails;
0000028C unsigned int Savehue;
00000290 unsigned int Powericoncfx;
00000294 unsigned int Attriblinktosource;
00000298 unsigned int Affectsonlyonfirstmodtick;
0000029C unsigned int Deactivationleavesmod;
000002A0 unsigned int Allowduplicateanimfxstart;
000002A4 unsigned int Refreshandaddmagnitudedurationisaveraged;
000002A8 unsigned int Onlyapplydamagetoshields;
000002AC unsigned int Durationisalwaysfulllength;
000002B0 unsigned int Usefixedstrmult;
000002B4 // padding byte
000002B5 // padding byte
000002B6 // padding byte
000002B7 // padding byte
000002B8 };


Подробнее здесь: https://stackoverflow.com/questions/796 ... a-c-struct
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»