C ++ вызывает функцию ref-class (смешанный код) - PullRequest
2 голосов
/ 11 апреля 2011

У меня есть приложение (CLI), которое ссылается на смешанную DLL. В DLL реализован класс ref со статическими функциями.

Вот (частичный) код для ref-класса

public ref class AAA
{
public:
static bool Write(System::String^ sz);

// Not accessible!!!
public: static BOOL TraceRect(const CRect& rc);
};

Внутри EXE, в коде C ++ я пытаюсь вызвать обе функции:

// This works
AAA::Write("hello");

// This doesn't !!!
CRect rc(0, 0, 12, 234);
AAA::TraceRect(rc);

Как я могу получить доступ ко второй функции?

1 Ответ

4 голосов
/ 11 апреля 2011

Вероятно, потому что нативные типы (в данном случае CRect) по умолчанию считаются закрытыми.Таким образом, пока метод доступен, тип параметра для rc недоступен.Вы можете сделать его доступным, используя make_public: http://msdn.microsoft.com/en-us/library/ms235607.aspx

Найдите C3767 и make_public, и вы найдете много другой информации по теме.

...