Avatar billede runberg Nybegynder
27. november 2003 - 12:18 Der er 37 kommentarer og
2 løsninger

kompilering af xx.vb til xx.dll

Hejsa

Hukommelsen er ikke hvad den har været, så er der ikke en af jer der kan give mig syntaxen til vbc.exe kompileriren, når man vil kompiler en .vb til .dll ??

Thanx ..
Avatar billede odegaard Nybegynder
27. november 2003 - 12:24 #1
Prøv i en prompt at skrive
vbc /?

Så kommer det hele leveret til dig :-)
Avatar billede arne_v Ekspert
27. november 2003 - 12:25 #2
Jeg tror at det er /t:library du leder efter.
Avatar billede odegaard Nybegynder
27. november 2003 - 12:26 #3
Avatar billede runberg Nybegynder
27. november 2003 - 12:32 #4
Der kommer en masse gejl, når jeg skriver vbc /? - Uheldigvis forstår jeg det ikke :-/

Jeg ved at det er noget med vbc.exe inputfile.vb outputfile.dll, men kan ikke huske den præcise kommando ...
Avatar billede runberg Nybegynder
27. november 2003 - 12:34 #5
odegaard:

Ind i mappen, og så bare:
vbc.exe /t:exe /debug+ /optionstrict+ /out:.\HelloVB.exe HelloVB.vb

right?? - Hvis jeg ikke skal have nogen exe fil, skal jeg så droppe den linie eller hvorledes?
Avatar billede runberg Nybegynder
27. november 2003 - 12:37 #6
Prøvede med:
vbc.exe /t:exe /debug+ /optionstrict+ /out:.\Databasehandler.dll Databasehandler.vb

Det gik ikke pissegodt :-) - Kan ske at der er fejl i VB'en, men er kommandoen korrekt?
Avatar billede odegaard Nybegynder
27. november 2003 - 12:40 #7
Du mangler sikkert at inkludere nogle DLL'er. Næste gang så må du gerne sige lige mere end "Det gik ikke pissegodt". Compileren fortæller faktisk hvad der er galt, så hvis vi skal hjælpe dig, må du gerne hjælpe os lidt.
Avatar billede runberg Nybegynder
27. november 2003 - 12:45 #8
Klart ... Men jeg ville jo bare have en syntakt til kommandoen ... ikke en gennemagang af min kildekode!

Jeg har netop udkommenteret så godt som alt i koden. Compileren skriver nu en eller anden fejlkode, med 'Sub Main' not found ... Det er korrekt, at der ikke er sådan en, men det er så vidt jeg ved heller ikke nødvendigt ...
Avatar billede runberg Nybegynder
27. november 2003 - 12:47 #9
' Databasehandler.vb

Namespace DatabaseHandler

    Public Class DatabaseHandler
   
    public function getDB() as String
     
      dim returnString as String ="Test"
     
      return returnString
   
    end function
   
    End Class
   
End Namespace
Avatar billede arne_v Ekspert
27. november 2003 - 12:49 #10
Læs lige min 12:25:42 kommentar !
Avatar billede runberg Nybegynder
27. november 2003 - 12:51 #11
arne ... Hvad er det for et bib??
Avatar billede arne_v Ekspert
27. november 2003 - 12:54 #12
Du skriver /t:library som skrevet for at fortælle vbc at du vil lave
en DLL ikke en EXE.
Avatar billede runberg Nybegynder
27. november 2003 - 12:56 #13
ahh ....

Noget i stil med:

vbc.exe /t:library /debug+ /optionstrict+ /out:.\Databasehandler.dll Databasehandler.vb

??
Avatar billede arne_v Ekspert
27. november 2003 - 12:59 #14
Jep.
Avatar billede runberg Nybegynder
27. november 2003 - 13:48 #15
Hmm ... Den skriver nu når jeg compiler:

Error BC30466: Namespace or type 'Data' for the Imports 'System.Data' cannot be found.

Imports System.Data

Har jeg ikke fået installeret mit .NET korrekt??
Avatar billede arne_v Ekspert
27. november 2003 - 13:50 #16
Jo men du skal nok referere den DLL som System.Data ligger i i din
kommando linie.
Avatar billede arne_v Ekspert
27. november 2003 - 13:51 #17
/r:System.Data.dll
Avatar billede runberg Nybegynder
27. november 2003 - 13:51 #18
Skal måske lige nævnes at jeg kompiler i en mappe der hedder inetpub\wwwroot\bin ... Denne mappe har jeg dog lavet selv, så er ikke helt sikker på at .NET installationen måske har styr på dette ..... Nogen ideer?
Avatar billede runberg Nybegynder
27. november 2003 - 13:52 #19
vbc.exe /t:library /r:System.Data.dll /debug+ /optionstrict+ /out:.\Databasehandler.dll Databasehandler.vb

Sådan??
Avatar billede runberg Nybegynder
27. november 2003 - 13:56 #20
Det ser meget bedre ud nu!! - Den compiler fint ... Jeg har så prøvet at tilføje lidt kode:

Det ser meget bedre ud nu!! - Den compiler fint ... Jeg har så prøvet at tilføje lidt kode:

' Databasehandler.vb

Imports System
Imports System.Data
Imports System.Data.SQLClient

Namespace DatabaseHandler

    Public Class DatabaseHandler
   
    private objConn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="database.mdb")
    private objCommand as SQLCommand
    private dataReader as sqlDataReader
    private sqlString as String
   
    public function getDB() as String
     
    bla bla bla

    end function
    End Class   
End Namespace

Den er dog ikke så glad for:
private objConn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="database.mdb")

Er koden ikke OK ??

(Ved godt at spørgsmålet er ved at skifte lidt karakter, men håber i stadig kan hjælpe!!)
Avatar billede arne_v Ekspert
27. november 2003 - 13:58 #21
Nu er jeg faktisk ikke så skrap til VB.NET, men er det ikke:

private objConn As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="database.mdb")
Avatar billede runberg Nybegynder
27. november 2003 - 14:07 #22
Nop .. det hjalp ikke synderligt ... Så vidt jeg husker (er som sagt lang tid siden jeg sidst har rodet med dette), så er begge kommandoer brugbare. Det jeg har skrevet skulle bare være en forkortelse af ovenstående....

Kunne det tænkes at jeg mangler at importere noget??
Avatar billede runberg Nybegynder
27. november 2003 - 14:10 #23
Skal måske også nævnes at databasen ligger i samme mappe som dll-filen.
Avatar billede odegaard Nybegynder
27. november 2003 - 14:20 #24
Jeg vil nu også mene at arne_v har ret. Du erklærer først en variabel og angiver en type, og derefter instantierer du den med New.
Men problemet er jo først at du forsøger at lave en OleDb connection, men det er SqlClient du importerer.
Enten skal det være "Imports System.Data.OleDb"
eller også skal det være
private objConn As SqlConnection = New SqlConnection("provider=microsoft.jet.oledb.4.0;data source="database.mdb")
Avatar billede arne_v Ekspert
27. november 2003 - 14:20 #25
Så tror jeg at det er fordi OleDbConnection ikke ligger i
System.Data.SQLClient men i System.Data.OleDb !
Avatar billede odegaard Nybegynder
27. november 2003 - 14:21 #26
det er nok den første, eftersom det er en access-database du forbinder til. Så kan du ikke bruge SqlConnection
Avatar billede arne_v Ekspert
27. november 2003 - 14:21 #27
SQLCommand og SQLDataReader skal vel også laves om til OleDbCommand og
OleDbDataReader hvis du bruger OleDbConnection.
Avatar billede runberg Nybegynder
27. november 2003 - 14:43 #28
Lyder fornuftigt ... Har nu ændret min kode til følgende:

Imports System
Imports System.Data
Imports System.Data.OleDb

Namespace DatabaseHandler

    Public Class DatabaseHandler
       
    private objConn As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=database.mdb")

    private objCommand as OleDbCommand
    private dataReader as OleDbDataReader
    private sqlString as String
    public function getDB() as String
     
      bla bla bal 
   
    end function
    End Class
End Namespace

Får nu fejl ved ("provider=microsoft.jet.oledb.4.0;data source=database.mdb").. Som om den ikke er så gald for sourcen. Dette til trods at databasen som sagt ligger i samme bibliotek som VB'en ..
Avatar billede odegaard Nybegynder
27. november 2003 - 14:46 #29
Det er flintrende ligegyldigt hvor databasen ligger når du compiler. Det er først når du kører koden at du får et problem dér. Er der linjeskift før parantesen eller er det Eksperten der ombryder?
Avatar billede runberg Nybegynder
27. november 2003 - 14:59 #30
Det er eksperten der bryder! .. Overvejde om syntakt skulle være:

New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="database.mdb"")

Dette afhjælper dog heller ikke..
Avatar billede odegaard Nybegynder
27. november 2003 - 15:01 #31
Som jeg sagde tidligere, så skriv HVAD compileren melder af fejl. Så slipper vi for endeløs gætværk.
Avatar billede runberg Nybegynder
27. november 2003 - 15:06 #32
Fair nok:

W:\Inetpub\wwwroot\bin>vbc.exe /t:library /r:System.Data.dll /debug+ /optionstri
ct+ /out:.\Databasehandler.dll Databasehandler.vb
Microsoft (R) Visual Basic .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.01.4322.573
Copyright (C) Microsoft Corporation 1987-2001. All rights reserved.

W:\Inetpub\wwwroot\bin\Databasehandler.vb(13) : error BC30007: Reference require
d to assembly 'System' containing the base class 'System.ComponentModel.Componen
t'. Add one to your project.

    private objConn As OleDbConnection New OleDbConnection("provider=microsoft.
jet.oledb.4.0;data source=database.mdb")
                        ~~~~~~~~~~~~~~~

W:\Inetpub\wwwroot\bin\Databasehandler.vb(13) : error BC30205: End of statement
expected.

    private objConn As OleDbConnection New OleDbConnection("provider=microsoft.
jet.oledb.4.0;data source=database.mdb")
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
W:\Inetpub\wwwroot\bin\Databasehandler.vb(15) : error BC30007: Reference require
d to assembly 'System' containing the base class 'System.ComponentModel.Componen
t'. Add one to your project.

    private objCommand as OleDbCommand
                          ~~~~~~~~~~~~

W:\Inetpub\wwwroot\bin>
Avatar billede odegaard Nybegynder
27. november 2003 - 15:22 #33
Du mangler /r:System.Dll
Avatar billede runberg Nybegynder
27. november 2003 - 15:33 #34
Hmm jaa ... Det hjalp betydeligt :-)

Nu får jeg kun følgende:

W:\Inetpub\wwwroot\bin\Databasehandler.vb(13) : error BC30205: End of statement
expected.

    private objConn As OleDbConnection New OleDbConnection("Provider=Microsoft.
Jet.OLEDB.4.0; Data Source=w:\inetpub\wwwroot\bin\Database.mdb")
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avatar billede arne_v Ekspert
27. november 2003 - 15:35 #35
Prøv:

private objConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.
Jet.OLEDB.4.0; Data Source=w:\inetpub\wwwroot\bin\Database.mdb")
Avatar billede runberg Nybegynder
27. november 2003 - 15:44 #36
FUCK FUCK FUCK en brøler!!

Nå tak for det :-)
Avatar billede runberg Nybegynder
27. november 2003 - 15:44 #37
Så skal jeg bare have nogle svar, så jeg kan smide nogle points!
Avatar billede arne_v Ekspert
27. november 2003 - 15:46 #38
svar
Avatar billede odegaard Nybegynder
27. november 2003 - 15:58 #39
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester