Я нахожу через Google множество примеров того, как вызвать функцию API в неуправляемой DLL из кода .NET, но как насчет создания объекта из этого неуправляемого кода?
В настоящее время я работаю со старым унаследованным приложением на работе (и я все еще не уверен, что мы сможем что-то с этим сделать, но я должен возиться и исследовать), что компания хочет перейти на .СЕТЬ. Похоже, что это было сделано раньше, и я просматриваю это сейчас. Наиболее распространенные ошибки компиляции - это ссылки на старые библиотеки DLL, которые проект не понимает.
Пример строки кода в этом будет:
Dim cAccounts As HSVMETADATALib.HsvAccounts
В проекте имеется неверная ссылка на библиотеку, которая, как мне кажется, является результатом некоторой попытки мастера просто перенести какой-то предварительный проект .NET на .NET. У меня есть DLL, которую он ищет, но добавление ссылки на него возвращает ошибку:
Ссылка на 'HFMConstants.dll' не может быть добавлена. Убедитесь, что файл доступен и является допустимым компонентом сборки или COM.
Теперь я ничего не знаю об этой DLL. И у меня очень небольшой опыт программирования до Windows. Поэтому я искал в Интернете информацию об использовании старой библиотеки DLL в этом коде, и все это сосредоточено на вызове функций API внутри библиотеки DLL. Однако, просматривая этот код, вы узнаете не столько о функциях API, сколько об объектах. Так как же мне создать экземпляр одного из этих объектов?
(Имейте в виду, что это одна из тех ситуаций, когда мы даже не знаем, есть ли у нас правильный исходный код, нет документации, ничего о владении и обслуживании этого приложения не было создано до конца. Но это одно препятствие возможность создания экземпляров объектов из внешних библиотек DLL, которые являются неизвестными и потенциально недоступными в данный момент сторонним источником, позволит сократить большинство ошибок компилятора и поможет нам получить немного больше информации о коде, возможно, даже получить урезанную версию хотя бы компилируемой.)
Это неопределенно, но стоит спросить:)