Имам C# DLL файлов проект (my_cs_dll.dll
), който дефинира статичен клас със статична членска функция.
namespace Foo
{
public static class Bar
{
public static double GetNumber() { return 1.0; }
}
}
Имам и C++ DLL проект, който използва /clr
.
#using <my_cs_dll.dll>
double get_number_from_cs() { return Foo::Bar::GetNumber(); }
Добавих препратка към 'my_cs_dll.dll'
в раздела за препратки към общите свойства на проекта C++ (зависимостите копиране локално/копиране са И двете True).
И също така добавих пътя към 'my_cs_dll.dll'
в раздела „Разрешаване#използване на препратки“ на проекта C++ Configuration Properties C/C++ General.
Всичко се изгражда без грешка, но по време на изпълнение продължавам да получавам изключение „System.IO.FileNotFound“ от системата, твърдейки, че не може да намери сборката my_cs_dll.dll
.
И двата DLL файла определено присъстват в същата директория, от която стартирам.
Опитах всякакви вариации на настройките, споменати по-горе, и прочетох всичко, което можах да намеря за manged/unmanaged interop, но изглежда не мога да разбера какво не е наред...
Използвам Visual Studio 2008 и .NET 3.5.