Метод Vb.net DLL не виден

Я создал VB.net DLL с Visual Basic Express очень просто, это мой код:

Public Class Class1
  Public Function SayHello() As String
    Return "Hello"
  End Function
End Class    
  • Я хотел бы использовать эту DLL из JAVA с JNA, но Eclipse сказал мне, что процедура «SayHello» не существует в моей DLL.
  • Когда я использую такие инструменты, как «Dependency Walker», моя функция не видна.

Итак, мой вопрос: как я могу сделать эту функцию вызываемой и видимой??

Спасибо. Винсент.


person programmeur-excel    schedule 29.12.2014    source источник
comment
JNA может получить доступ только к C++ dll. Вам нужно будет создать оболочку С++ вокруг вашей библиотеки VBNet.   -  person ortis    schedule 29.12.2014
comment
возможный дубликат Вызов управляемого кода из неуправляемого C   -  person xxbbcc    schedule 29.12.2014
comment
возможный дубликат Как я могу вызвать код .NET из Java?   -  person Mark    schedule 29.12.2014


Ответы (1)


Как некоторые из комментариев указывают:

JNA может предоставлять только «привязки Java» (т. е. позволяет вызывать методы из Java) для методов в native библиотеке DLL PE32/PE32+. dll VB.Net, напротив, всегда являются управляемыми dll.

Чтобы различать собственные и управляемые библиотеки DLL, вы можете использовать, например. один из инструментов dumpbin или corflags; первая доставка, например. Visual Studio, второй поставляется, например. последние Microsoft SDK.

Вызов dumpbin /dependents для сомнительной управляемой библиотеки DLL покажет зависимость от mscoree.dll.

Вызов corflags для сомнительной собственной dll покажет ошибку (например, The specified file does not have a valid managed header)

Эта информация взята из раздела Является ли эта DLL управляемой или неуправляемой?, но также проверена мной.

person Hille    schedule 30.01.2015