Вызов консольного приложения C ++ Статическая библиотека C ++ / CLI - PullRequest
0 голосов
/ 06 ноября 2019

Я играю с идеей создания статической библиотеки C ++ / CLI, которая предоставляет ряд статических функций для управляемой функциональности EventLogger. Мое текущее Решение существует из /clr скомпилированного проекта C ++ и консольного приложения C ++.

Visual Studio говорит мне, что ConsoleApp нужно скомпилировать с параметром /clr, но это то, что мне не нужносделать. Есть ли какой-нибудь способ добиться того, что я пытаюсь сделать здесь?

#### ConsoleApp.cpp

#include <iostream>
#include "../ClrEtwLogger/ClrEtwLogger.h"

int main()
{
    clr_etw_logger::etw_logger::etw_log();
}
#### ClrEtwLogger.h (/clr), static library

#pragma once

#using <system.dll>

using namespace System;
using namespace Diagnostics;

namespace clr_etw_logger
{
    public ref class etw_logger
    {
    public:
        static void etw_log()
        {
            const auto source = gcnew String("dotNet ClrEtwLogger");
            const auto log = gcnew String("EtwLogger");
            const auto event = gcnew String("Sample Event 1");

            if (!EventLog::SourceExists(source))
            {
                EventLog::CreateEventSource(source, log);
            }

            EventLog::WriteEntry(source, event);
            EventLog::WriteEntry(source, event, EventLogEntryType::Warning, 234);
        }
    };
}
...