Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Портирование структуры C++ -> C#
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть у меня на плюсах такая вот штука: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Мне надо её перевести в шарп. У меня получилось примерно следующее: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Всё бы было хорошо, но при попытке получить размер структуры (int size = Marshal.SizeOf(t);) я получаю ошибку: "Невозможно упаковать тип "Tester.Form1+TPackage_TenzoM_Ver643" как неуправляемую структуру; невозможно вычислить размер или смещение, имеющие смысл." По структуре размер у меня должен быть 9. COP - 1 байт DATA - массив из 7 байт LStruct - 1 байт Как мне исправить это дело? Я пытался задавать [StructLayout(LayoutKind.Sequential)], т.е.: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Тогда при самом старте приложения я получаю: Не удалось загрузить тип "TPackage_TenzoM_Ver643" из сборки "Tester, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", так как он содержит поле объекта со смещением 1, которое неверно выровнено или перекрыто полем, не представляющим объект. Помогите, пожалуйста, выровнять/настроить/сделать/сколотить/нуиличтотамещё эту структуру. На выходе мне нужен размер в 9 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 12:53 |
|
||
|
Портирование структуры C++ -> C#
|
|||
|---|---|---|---|
|
#18+
Алексей Ку., тип char занимает 2 байта, а значит поле COP будет перекрывать поле Data. Попробуй указать: Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2015, 12:28 |
|
||
|
Портирование структуры C++ -> C#
|
|||
|---|---|---|---|
|
#18+
Александр Витер, Не помогло. Получаю ошибку "Невозможно упаковать тип "Tester.Form1+TPackage_TenzoM_Ver643" как неуправляемую структуру; невозможно вычислить размер или смещение, имеющие смысл." при попытке получить раззмер структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 16:07 |
|
||
|
Портирование структуры C++ -> C#
|
|||
|---|---|---|---|
|
#18+
Обратил внимание - так там содержатся классы, т. е. управляемые указатели BitArray и, похоже, char[]. Замените на bool*, char* (или byte*) или IntPtr, но классов быть не должно, если используется marshaling в неуправляемую память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=38898739&tid=1401813]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
212ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 297ms |
| total: | 597ms |

| 0 / 0 |
