Как настроить swig для отображения size_t как ulong вместо uint (c #) на 64-разрядных платформах

#c# #c #64-bit #swig

#c# #c #64-разрядный #swig

Вопрос:

Проблема в том, что swig отображает переменные size_t как uint в c #, это правильно в 32-разрядной версии, но мне нужно создать оболочку и для 64-разрядной версии. Мне нужна помощь с настройкой интерфейса, чтобы использовать ulong вместо uint для size_t на 64-разрядных платформах. Интерфейс действительно прост, я просто добавил файлы заголовков напрямую. Нет необходимости в поддержке Linux, поскольку проект предназначен только для Windows, а компилятором является Visual Studio 2010.

Любая помощь будет высоко оценена.

Комментарии:

1. Вы должны использовать UIntPtr, а не uint или ulong

Ответ №1:

%apply это что-то вроде #define. Я использовал его для преобразования int64_t в long long.

 %apply ulong {size_t}
  

Комментарии:

1. Большое вам спасибо, я действительно использовал %apply ulonglong {size_t} . Итак, ulonglong в c и ulong в c # оба 64-разрядные.