Как использовать c# Dll в vc ++?

Мне нравится играть в чит-мошенник - что-то вроде использования токена для аутентификации счета, который меняется каждый раз, когда вызывается обновление ... но я принимаю чит-счет, который публикуется с использованием дублирующего токена. Затем я показываю этот счет только читеру, так что, похоже, он сработал, но теперь читер видит его результаты в песочнице.

7
задан Joel Coehoorn 11 June 2009 в 12:52
поделиться

3 ответа

Ваша сборка C # нуждается в атрибуте ComVisible (среди прочего).

[assembly: ComVisible(true)] 

Здесь есть руководство по выполнению этого .

9
ответ дан 6 December 2019 в 10:02
поделиться

Из форумов 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.

8
ответ дан 6 December 2019 в 10:02
поделиться

Это в значительной степени зависит от того, какое приложение C ++ вы создаете. Если вы создаете сборку C ++ / CLI, вам необходимо убедиться, что в проекте есть ссылка на C # DLL. Как только это будет сделано, вы сможете ввести код в том виде, в котором он написан, при условии, что у вас есть такое определение Demo.

namespace Test {
  public class demo {
    public void add(int left, int right) { 
      ...
    }
  }
}

Если вы создаете обычный, неуправляемый проект C ++, вы должны использовать COM-взаимодействие для доступа к сборке. . Это включает в себя создание демонстрационного типа в вашем проекте C # COMVisible и регистрацию его для взаимодействия с COM. После чего вы сможете получить к нему доступ, как к любому другому компоненту COM.

2
ответ дан 6 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: