
Overflow (Normal User)
Expert
    
Messaggi: 334
Iscritto: 11/01/2008
|
Voglio creare in Visual Basic un programma senza interfaccia grafica, che funzioni sotto Dos. Un semplice programma che mi stampi su schermo la scritta Hello World! Sapete come si fa?? So solo che si crea una sub main() in un modulo ma non so come stampare una scritta su console. Ad esempio per chi conosce il C/C++ si può usare la printf(), in Visual Basic come si fa??
Grazie!
|
|

kryc (Normal User)
Rookie
    
Messaggi: 23
Iscritto: 10/12/2007
|
in vb.net
|
|

antometal (Member)
Guru
    
Messaggi: 691
Iscritto: 12/09/2007
|
|
|

P4p3r0g4 (Member)
Guru
    
Messaggi: 1319
Iscritto: 29/12/2006
|
il vb6 non e` il linguaggio adatto per questo tipo di programmi.
|
|

Overflow (Normal User)
Expert
    
Messaggi: 334
Iscritto: 11/01/2008
|
Postato originariamente da kryc:
in vb.net |
se ho postato qui vuol dire che sto parlando di Visual Basic 6.0, altrimenti avrei postato il problema nella sezione .Net.
Postato originariamente da P4p3r0g4:
il vb6 non e` il linguaggio adatto per questo tipo di programmi. |
adatto che vuol dire che non si può fare... o che si può fare ma è complesso da sviluppare??? Ultima modifica effettuata da Overflow il 09/05/2008 alle 10:13 |
|

gantonio (Normal User)
Guru^2
    
Messaggi: 1532
Iscritto: 09/09/2007
|
In VB6 e' possibile ma dovrai utilizzare un bel po' di API ed e' un po' complesso.
Prima di iniziare a farlo, mi piacerebbe capire come mai vuoi fare una cosa del genere per forza in VB6 ...
|
|

Overflow (Normal User)
Expert
    
Messaggi: 334
Iscritto: 11/01/2008
|
Postato originariamente da gantonio:
In VB6 e' possibile ma dovrai utilizzare un bel po' di API ed e' un po' complesso.
|
va bene...
Prima di iniziare a farlo, mi piacerebbe capire come mai vuoi fare una cosa del genere per forza in VB6 ...
|
no non c'è un motivo.. è solo pura curiosità.
Non ho mai visto un applicazione in Visual Basic che giri sotto Dos, e visto che non la so realizzare volevo capire come fare... Pura e semplice curiosità! Ultima modifica effettuata da Overflow il 09/05/2008 alle 16:08 |
|

gantonio (Normal User)
Guru^2
    
Messaggi: 1532
Iscritto: 09/09/2007
|
Ovviamente non sara' un'applicazione DOS ma una applicazione che utilizza le Console di Win32.
Un esempio, liberamente modificato da un codice di esempio, e' il seguente (utilizza un solo modulo e fai partire il programma dalla main ...)
Codice sorgente - presumibilmente VB.NET |
Private Const STD_OUTPUT_HANDLE = -11& Private Const STD_INPUT_HANDLE = -10& Private Const STD_ERROR_HANDLE = -12& Private Declare Function AllocConsole Lib "kernel32" () As Long Private Declare Function FreeConsole Lib "kernel32" () As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long Private Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" (ByVal hConsoleInput As Long, ByVal lpBuffer As String, ByVal nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long Private Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long Private hConsoleOut As Long Private hConsoleIn As Long Private Sub Main() Dim r As String AllocConsole hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE) hConsoleIn = GetStdHandle(STD_INPUT_HANDLE) SetConsoleTitle "Prova console" ConsoleWriteLine "Ciao a tutti ..." r = ConsoleReadLine CloseHandle hConsoleOut CloseHandle hConsoleIn FreeConsole End Sub Sub ConsoleWriteLine(sInput As String) ConsoleWrite sInput + vbCrLf End Sub Sub ConsoleWrite(sInput As String) Dim cWritten As Long WriteConsole hConsoleOut, ByVal sInput, Len(sInput), cWritten, ByVal 0& End Sub Function ConsoleReadLine() As String Dim ZeroPos As Long ConsoleReadLine = String(10, 0) ReadConsole hConsoleIn, ConsoleReadLine, Len(ConsoleReadLine), vbNull, vbNull ZeroPos = InStr(ConsoleReadLine, Chr$(0)) If ZeroPos > 0 Then ConsoleReadLine = Left$(ConsoleReadLine, ZeroPos - 3) End Function
|
|
|

kryc (Normal User)
Rookie
    
Messaggi: 23
Iscritto: 10/12/2007
|
ho scritto vb.net perchè su vb.net puoi scegliere di aprire un progetto in console application senza scrivere un codice complesso come lo sarebbe per vb6
|
|