我正在使用c#中的EA Addin(感谢Geert),并希望使用代码将现有元素从包移动到另一个.
很清楚如何在EA.Collection p.Elements中添加或删除元素,但这不起作用,因为此过程更改了元素的GUID.
有可能吗?
我使用以下C算法在数据上计算CRC32:
#define CRC32_POLYNOM_REVERSED 0xEDB88320
uint32 calcCrc32(uint8* buffer, uint32 bufferSize) {
return accumulateCrc32(0, buffer, bufferSize);
}
uint32 accumulateCrc32(uint32 accumulatedCrc32, uint8* buffer, uint32 bufferSize) {
uint32 i, j;
uint32 crc, mask;
crc = accumulatedCrc32 ^ 0xFFFFFFFF;
for (i = 0; i < bufferSize; i++) {
crc ^= buffer[i];
for (j = 8; j > 0; j--) {
mask = -(crc & 1);
crc = (crc >> 1) ^ (CRC32_POLYNOM_REVERSED & mask);
}
}
return crc ^ 0xFFFFFFFF;
}
Run Code Online (Sandbox Code Playgroud)
当我将其应用于任何数据并将结果的4个字节的CRC32连接到该数据并再次通过此例程运行时,它总是以结果结尾
crc32 = 0x2144DF1C …