Я думаю, что это может быть более общим, но в этом случае я пытаюсь создать CLR CLR для Microsoft Dynamic NAV.CLR (C++ .net) как Addin to Dynamic NAV
Если я делаю это на C#, он отлично работает. C# код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VisualCSharp
{
public class MyTest
{
public MyTest()
{
}
public int AddTest(int a, int b)
{
return a + b;
}
}
}
Когда я пытаюсь добавить, что Dynamic NAV, я нахожу это:
Выберите и нажмите OK:
До сих пор так хорошо.
Тогда мне нравится делать то же самое в C++ с классом CLR.
Я начинаю с создания библиотеки C++ CLR класса и добавить код для теста: (я сделал это рядный здесь, только чтобы сохранить код простым, но это не имеет значения, если я разделяю его.)
#pragma once
using namespace System;
namespace VisualCPP
{
public ref class MyTest
{
public:
MyTest()
{
};
int AddTest(int a, int b)
{
return a + b;
};
};
}
Сделайте то же самое с этим. В списке «Сборка» это похоже на дополнение VisualCSharp, но оно отображается как «x86» процессора, но это нормально. У меня есть C#, который также делает это (COM-обертки), и они также отлично работают.
Однако, когда я нажимаю «ОК», я получаю сообщение об ошибке, указывающее, что он не может загрузить тип «VisualCPP».
Итак, вопрос: что мне не хватает? Я знаю, что код CLR отличается тем, что он не управляется чистым (даже с использованием параметра «личный/чистый компилятор» не работает), но есть ли какие-то настройки или декларации, которые должны были быть сделаны, чтобы сделать мой класс видимым?
Спасибо, но мой пример, где токен открытого ключа имеет значение null, является C# и работает безупречно. Но вы можете что-то сказать. Я просто надеялся не делать много слоев упаковки. :) –