Если вы хотите выполнить функцию DLL из командной строки, используйте: Rundll.exe
Обратите внимание, что ваша экспортируемая функция должна точно соответствовать сигнатуре (C):
void CALLBACK EntryPointW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow);
Если этого не произойдет, неизвестно, что произойдет, но вы, вероятно, потерпите крах. Обычной процедурой для вызова произвольных функций из dll в классе VB является использование оператора Declare . Вы должны знать сигнатуру функции, которую вы хотите вызвать во время компиляции.
Например:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, ByRef nSize As Integer) As Integer
Function GetUser()
Dim RetVal As Integer
Dim UserName As String
Dim Buffer As String
Buffer = New String(CChar(" "), 25)
RetVal = GetUserName(Buffer, 25)
UserName = Strings.Left(Buffer, InStr(Buffer, Chr(0)) - 1)
MsgBox(UserName)
End Function
Этот код вызывает функцию "GetUserNameA" из advapi32.dll. Существует много сайтов, посвященных перечислению синтаксиса Declare
для произвольных оконных функций, поэтому обычно нетрудно найти правильный.