Как я могу преобразовать структуру 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
Как я могу преобразовать структуру c# в структуру c ++ ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как перенаправить одну структуру URL-адресов на другую структуру URL-адресов?
Anonymous » » в форуме Php - 0 Ответы
- 125 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как перенаправить одну структуру URL-адресов на другую структуру URL-адресов?
Anonymous » » в форуме Apache - 0 Ответы
- 144 Просмотры
-
Последнее сообщение Anonymous
-