PROBLEMA Creare programma VB indipendente da .NET

Samuele_

Nuovo Utente
117
5
CPU
AMD Athlon X4 880K @ OC 4.50 Ghz
Dissipatore
Near-silent 125W AMD Thermal Solution
Scheda Madre
Asus FM2+ A88X-PLUS
HDD
WD Caviar Green 1TB WD10EARS (SATA)+WD Caviar Blue 1 TB WD10EZEX (SATA)+Samsung HM160HI 160Gb (SATA)
RAM
Kingston HyperX Fury DDR3 8 GB (2 x 4 GB) 1866 MHz 9-11-10
GPU
Asus Radeon RX 460 Strix 4 GB GDDR5
Audio
Realtek ALC887 8-Channel HD Audio CODEC
Monitor
Samsung SyncMaster 152S - LCD monitor - 15"
PSU
Corsair CX550M CP-9020102-EU - 80Plus Bronze
Case
Aerocool Aero-500 Gaming Case White Edition
OS
Windows 10 Pro 64-Bit
Salve. Inizio dicendo che sono alle primissime armi con Visual Basic quindi non aspettatevi grandi codici da controllare, dovrebbe essere semplice.
Allora qualche giorno fa mi sono messo a giocherellare con Visual Studio (uso Microsoft Visual Basic 2010 Express perchè è veramente semplice) ed ho finito per fare questo:

Codice:
Option Explicit On
Public Class Form1
    Dim random = New Random
    Dim utente As String = System.Environment.UserName
    Dim cartella As String = "C:\Users\" & utente & "\Desktop\prova\"

    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        Me.Hide()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If System.IO.File.Exists("C:\stop.txt") Then
            End
        ElseIf Not System.IO.Directory.Exists(cartella) Then
            System.IO.Directory.CreateDirectory(cartella)
        End If
    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim counter = My.Computer.FileSystem.GetFiles(cartella)
        Dim numero As String = Me.random.Next(0, 400)
        If (CStr(counter.Count)) >= 400 Then
            End
        ElseIf Not System.IO.File.Exists(cartella & numero & ".txt") Then
            System.IO.File.Create(cartella & numero & ".txt")
        End If
    End Sub
End Class

L'ho fatto compilare e poi ho scoperto che non si poteva eseguire senza .NET Framework installato nel computer. Ma io non avevo mai usato .NET nel codice, almeno secondo me no, quindi dopo una ricerca ho visto due pagine
questa (My.Computer.FileSystem Object)
e questa (Classe File).
Da queste due pagine ho creduto di capire che la funzione System.IO.File.ecc era dipendente da .NET così ho sostituito le funzioni con My.Computer.FileSystem.ecc che dovrebbe essere semplicemente VB senza .NET.
Codice:
Option Explicit On
Public Class Form1
    Dim random = New Random
    Dim utente As String = System.Environment.UserName
    Dim cartella As String = "C:\Users\" & utente & "\Desktop\prova\"

    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        Me.Hide()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.FileSystem.FileExists("C:\stop.txt") Then
            End
        ElseIf Not My.Computer.FileSystem.DirectoryExists(cartella) Then
            System.IO.Directory.CreateDirectory(cartella)
        End If
    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim counter = My.Computer.FileSystem.GetFiles(cartella)
        Dim numero As String = Me.random.Next(0, 400)
        If (CStr(counter.Count)) >= 400 Then
            End
        ElseIf Not My.Computer.FileSystem.FileExists(cartella & numero & ".txt") Then
            System.IO.File.Create(cartella & numero & ".txt")
        End If
    End Sub
End Class
Voi cosa ne pensate?
Qualcuno sa come creare un programmino in VB completamente indipendente da .NET?

P.S.: Ignorate cosa fa effettivamente il codice perchè era così tanto per cominciare
 
Ultima modifica:
M

Mursey

Ospite
Se un programma è scritto in VB.Net il framework .Net è obbligatorio.
Se lo fai con un vb più vecchio tipo il 6 ti serve comunque una dll che fornisce le funzioni per il runtime.

Nei link che hai messo si parla di Microsoft.VisualBasic.dll e mscorlib.dll quindi per girare avresti comunque bisogno di queste librerie; ed è facile che loro abbiano bisogno di altre per funzionare.

In generale puoi sviluppare in ambiente .net con una certa tranquillità perchè saprai che il framework sarà un prerequisito per funzionare (spesso è già installato in Windows o il 10 te lo scarica se serve).

Per avere un programma che giri senza dipendenze dovresti fartelo con un linguaggio come il C ma puoi notare che anche i videogiochi ti installano le librerie C++ per funzionare quindi non è un problema mettere queste dipendenze.


Se poi il tuo è solo un esercizio per capire meglio e migliorarti allora passo la palla ad altri, io sono più pratico ;)
 
  • Like
Reactions: GrizzlyBear

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 7 21.9%
  • Gearbox

    Voti: 0 0.0%
  • Xbox & Bethesda

    Voti: 24 75.0%
  • Square Enix

    Voti: 0 0.0%
  • Capcom

    Voti: 1 3.1%
  • Nintendo

    Voti: 4 12.5%
  • Altro (Specificare)

    Voti: 1 3.1%

Discussioni Simili