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

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

У меня есть 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

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


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


Ответы (1)


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

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

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
person RobPio    schedule 10.01.2014