Ошибка вызова конструктора C ++ / CLI из C # - PullRequest
2 голосов
/ 01 марта 2011

Я пытаюсь сохранить и восстановить состояние с помощью StateBlock в SlimDX через следующий фрагмент:

StateBlockMask mask = new StateBlockMask(null) { RasterizerState = true };
var sb = new StateBlock(device.Device, mask);

И StateBlockMask, и StateBlock являются классами.Это дает мне ошибку компиляции:

'.ctor' is not supported by the language

При чтении некоторых других постов здесь на SO, кажется, что это проблема, связанная с вызовом управляемого кода с неправильными аргументами.В источнике SlimDX я нахожу:

StateBlock::StateBlock(SlimDX::Direct3D10::Device^ device, StateBlockMask mask)

У меня нет никакого опыта работы с C ++ / CLI, поэтому мне интересно, есть ли здесь что-то не так (например, отсутствует или лишний ^), или следуетЯ концентрируюсь на ошибках на моей стороне?

(ПРИМЕЧАНИЕ: Этот вопрос был перекрестно опубликован на gamedev.net , будущие пользователи с таким же вопросом могут также захотеть проверить ответы, данные там)

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

Является ли StateBlockMask структурой? Если нет, используйте StateBlockMask^ mask в конструкторе C ++.

0 голосов
/ 01 марта 2011

Это похоже на ошибку в SlimDX. Возможно, вы захотите использовать средство отслеживания проблем , чтобы убедиться, что с ним правильно обращаются.

...