Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Импорт VB.net DLL из ресурсов

Автор вопроса: THE AMAZINGОтветов: 1

Я провел довольно много исследований по этому вопросу и получил много решений, которые либо не работают, либо я неправильно их реализую.

У меня есть DLL с именем MyDLL.dll, созданная как dll win32, закодированная на С++.

В VB.net я могу вызвать начальную функцию из dll, выполнив следующие действия:

 <DllImport("MyDll.dll")> Public Shared Function DLL_Function() As Boolean
 End Function

Мне нужно что-то вроде этого:

 <DllImport(My.Resources.MyDLL)> Public Shared Function INJECTION_MAIN() As Boolean
 End Function

Новые шаги были бы хороши.

  • проверьте нижнюю правую часть экрана под Related. Существует целый список ... ну, связанных вопросов, которые Google, возможно, не нашел. Ňɏssa Pøngjǣrdenlarp 11.01.2014
  • Это невозможно, жесткое требование операционной системы Windows для неуправляемых исполняемых файлов заключается в том, что они должны храниться в файле на диске. Уже есть очень распространенный способ запихнуть исполняемые файлы в один файл, все называют его setup.exe Hans Passant 11.01.2014
  • Спасибо за предложение, как всегда; В настоящее время в Stackoverflow нет того, что я ищу. THE AMAZING 11.01.2014
  • Нет нет, это возможно, я делал это раньше. THE AMAZING 11.01.2014
  • Нет, это невозможно. Если вы делали это раньше, то вы делали это с помощью сборки .NET. Он содержит данные, а не код. Hans Passant 11.01.2014

resourcesdlldllimport

Ответы

Ответ 1 · RobPio

Ваш первый фрагмент кода правильный. Это всего лишь оболочка для функции, хотя...

Вот что вы хотите сделать:

Module Module1

Sub Main()
    'To call your function
    PInvoke.DLL_Function()
End Sub

End Module

'your function wrappers go here
Public Class PInvoke
     <DllImport("MyDll.dll")> Public Shared Function DLL_Function() As Boolean
     End Function
End Class

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы