Мне нравится играть в чит-мошенник - что-то вроде использования токена для аутентификации счета, который меняется каждый раз, когда вызывается обновление ... но я принимаю чит-счет, который публикуется с использованием дублирующего токена. Затем я показываю этот счет только читеру, так что, похоже, он сработал, но теперь читер видит его результаты в песочнице.
Ваша сборка C # нуждается в атрибуте ComVisible (среди прочего).
[assembly: ComVisible(true)]
Из форумов MSDN Вызов C # из неуправляемого C ++ :
То, что вы хотите сделать, будет компилируйте только те файлы, где хотите чтобы загрузить код C # / clr, а затем вызвать прочь с помощью C ++ / CLI. Остальные твои приложение останется родным, пока эти cpp файлы, которые вы компилируете / clr, будут смешанными родной и CLR. Ты должен быть способен просто вызовите свою библиотеку C #, используя Синтаксис C ++ / CLI.
Как только вы добавляете / clr в cl.exe командная строка для файла, внутри этого файл, вы можете вызвать любой управляемый код что вы хотите, независимо от того, он был написан на VB.net, C # или C ++ / CLI. Это, безусловно, самый простой способ делать то, что вы хотите (вызовите C # код из вашего собственного приложения на C ++), хотя у него есть свои предостережения и ограничения. По большому счету, хотя "Это Просто работает ». Кроме того, он быстрее, чем p / invokes.
Это в значительной степени зависит от того, какое приложение C ++ вы создаете. Если вы создаете сборку C ++ / CLI, вам необходимо убедиться, что в проекте есть ссылка на C # DLL. Как только это будет сделано, вы сможете ввести код в том виде, в котором он написан, при условии, что у вас есть такое определение Demo.
namespace Test {
public class demo {
public void add(int left, int right) {
...
}
}
}
Если вы создаете обычный, неуправляемый проект C ++, вы должны использовать COM-взаимодействие для доступа к сборке. . Это включает в себя создание демонстрационного типа в вашем проекте C # COMVisible и регистрацию его для взаимодействия с COM. После чего вы сможете получить к нему доступ, как к любому другому компоненту COM.