Я читал о CLR и смотрел учебник. Когда я добавил свой ранее существующий код C ++ в свое новое решение CLR, я обнаружил, что STD :: Thread и STD :: mutex не поддерживаются в CLR или CLR Pure.
Есть ли способ, которым я могу вызывать функции c # в моей программе на C ++ без необходимости изменять ранее существующий код? Мой код на C ++ использует WxWidgets, и я опасаюсь, что он также может привести к ошибкам, даже если я исправлю проблемы Threading и Mutex.
Код на C # очень прост, все, что мне нужно, это вернуть целое число или число с плавающей точкой. Есть ли способ добавить мою C # dll к моему пути и просто с помощью макросов вызывать эти функции?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenHardwareMonitor.Hardware;
namespace SystemMonitor
{
class Program
{
public class UpdateVisitor : IVisitor
{...}
static int FindValue(HardwareType type, SensorType sensor)
{
... some code...
return value;
}
static int GetRamVoltage()
{
return FindValue(HardwareType.RAM, SensorType.Voltage);
}
static int GetCPUVoltage()
{
return FindValue(HardwareType.CPU, SensorType.Voltage);
}
static void Main(string[] args)
{
while (true)
{
//GetSystemInfo();
Console.WriteLine(GetRamVoltage().ToString());
//Console.WriteLine(GetRamClock().ToString());
//Console.WriteLine(GetRamTemp().ToString());
//Console.WriteLine(GetRamLoad().ToString());
Console.WriteLine(GetCPUVoltage().ToString());
//Console.WriteLine(GetCPUClock().ToString());
//Console.WriteLine(GetCPUTemp().ToString());
//Console.WriteLine(GetCPULoad().ToString());
}
}
}
}