首页 > 解决方案 > C++ 控制台应用程序调用 C++/CLI 静态库

问题描述

我正在尝试创建一个 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);
        }
    };
}

标签: c++c++-cli

解决方案


推荐阅读