Я работаю над проектом, в котором мне нужно импортировать файл DLL в проект VB, созданный несколько лет назад. DLL была создана в C ++ и выглядит так:
void CoordinateConversionService::convert( SourceOrTarget::Enum sourceDirection, SourceOrTarget::Enum targetDirection, CoordinateTuple* sourceCoordinates, Accuracy* sourceAccuracy, CoordinateTuple& targetCoordinates, Accuracy& targetAccuracy )
Я стажер на своей работе, и мне еще не приходилось этим пользоваться, поэтому мое понимание крайне ограничено, наряду с использованием VB (я парень на C ++ / C #). Вот несколько вопросов:
1) Глядя на Dllimport, кажется, что последняя часть вне параметров является типом возврата. Пример кода с другого сайта:
<DllImport("advapi32.dll")> _
Public Function GetUserName( _
ByVal lpBuffer As StringBuilder, _
ByRef nSize As Integer) As Boolean
Является ли "As Boolean" типом возвращаемого значения? Если это так, я попытался использовать «Sub», и он говорит: «Ключевое слово не называет тип». Поэтому я решил объявить, потому что мне кажется, что я могу вернуть void / sub в качестве возвращаемого типа.
2) Попытки использовать типы "CoordinateTuple" и "Точность" вызывают у меня проблемы, говоря, что они не определены. Как мне обойти это, так как я не думаю, что могу действительно определить их, и как насчет того, что они указатели? Кроме того, я никак не могу изменить код C ++, поэтому у меня есть то, что у меня есть.