Проверьте, верно ли val.name
(пустая строка неверна), используя логический оператор AND:
val && val.name ? val.name : "N/A"
Я попытался вызвать C # из C ++ в WinCE. Я не верю, что в Compact Framework есть какая-либо поддержка COM, поэтому вы не можете использовать ComVisible (true).
Я также не смог найти способ разместить .NET на C ++, потому что снова не было функциональности. t представлен в Compact Framework.
Мое решение состояло в том, чтобы создать приложение-заглушку C # и связываться с хостом C ++ через очереди сообщений. Это также решает проблему маршалинга данных. Производительность для моего использования в порядке. Самая большая стоимость - это время запуска заглушки, которое вам все равно придется заплатить, если вы закончили приложение на C #.
Вы лаете не на то дерево. Чтобы машинный код мог вызывать управляемый код, машинный код должен активировать механизм выполнения CLR. Это известно как Хостинг CLR и не поддерживается в CF. Это означает, что вы просто не можете этого сделать - даже с творческим взломом (поверьте мне, я пробовал каждый переулок).