Использование C ++/CLI для C# Winui Project и Native C ++ -совместимость проектаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование C ++/CLI для C# Winui Project и Native C ++ -совместимость проекта

Сообщение Anonymous »

У меня есть следующая настройка:
У меня есть проект Winui C#, из которого я генерирую DLL, затем я использую проект C ++/CLI, чтобы подвергать функции нативного проекта C ++.

Код: Выделить всё

namespace ClassLibrary
{
public class Class1
{
public void SayHello()
{
System.Diagnostics.Debug.WriteLine("Hello from ClassLibrary.Class1!");

Application.Start(p =>
{
var window = new MainWindow();
window.Activate();
});
}
}
}
В моем проекте C ++/CLI:

Код: Выделить всё

//"ProjectCLR.h"
#pragma once

extern "C" __declspec(dllexport) void __stdcall StartWinUI();

//"ProjectCLR.cpp"
using namespace System;
using namespace ClassLibrary;

void __stdcall StartWinUI()
{
try
{
Class1^ obj = gcnew Class1();
obj->SayHello();
}
catch (Exception^ ex)
{
System::Diagnostics::Debug::WriteLine("StartWinUI failed: " + ex->Message);
}
}
< /code>
и, наконец, в моем проекте C ++: < /p>
int main()
{
HRESULT hrInit = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
if (FAILED(hrInit)) {
return hrInit;
}

PACKAGE_VERSION minVer{};
minVer.Major = 1;
minVer.Minor = 8;

auto hL = LoadLibraryW(L"Microsoft.WindowsAppRuntime.Bootstrap.dll");
if (!hL) return E_FAIL;

auto M = (decltype(&MddBootstrapInitialize))GetProcAddress(
hL, "MddBootstrapInitialize");
if (!M) return E_FAIL;

HRESULT hr = M(0x00010008, L"", minVer);
return hr;

StartWinUI();

return 0;
}
Проблема заключается в том, что в моем проекте C# я строю Mainwindow , используя XAML, и он жалуется на отсутствие ресурсов XAML, не может найти ресурс из 'ms-appx: //classlibrary/mainwindow.xaml , я не уверен, как решить это. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... perability
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»