Toon posts:

[asp.net] Control compileren lukt niet

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008

Verwijderd

Topicstarter
Zoals titel al zegt, ik probeer een component te compileren, maar elke keer krijg ik wel een foutmelding.

Ik compileer commandline dmv deze opdracht:
vbc /t:library /r:System.dll,System.Web.dll /out:MyApp.dll MyApp.vb

Uiteraard krijg ik foutmeldingen vanwege bepaalde functies (UCase, Chr etc). Volgens microsoft moet er een reference toegevoegd worden:
When compiling from the command line, you must explicitly reference the Microsoft Visual Basic Run-Time Library through the /reference compiler option.
Maar goed, ook als ik die reference toevoeg, dan krijg ik nog steeds de volgende foutmeldingen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Microsoft (R) Visual Basic .NET-compileerprogramma versie 7.10.3052.4
voor Microsoft (R) .NET Framework versie 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. Alle rechten voorbehouden.

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(12) : error BC30205: Einde van instructie wordt verwacht.

    public class MenuButton inherits System.Web.UI.WebControls.LinkButton
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(17) : error BC30451: De naam ViewState is niet gedeclareerd.

                dim ViewObj as object = ViewState ("ValList")
                                        ~~~~~~~~~            
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(27) : error BC30451: De naam ViewState is niet gedeclareerd.

                ViewState ("ValList") = Value
                ~~~~~~~~~                    
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(30) : error BC30634: De instructie kan niet voorkomen binnen de hoofdcode van een eigenschap. Einde van eigenschap wordt aangenomen.

            protected Overrides sub Render (byval output as System.Web.UI.HtmlTextWriter)
            ~~~~~~~~~                                                                    
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(30) : error BC30284: sub Render kan niet worden gedeclareerd als Overrides omdat het geen sub in een basis class overschrijft.

            protected Overrides sub Render (byval output as System.Web.UI.HtmlTextWriter)
                                    ~~~~~~                                               
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(34) : error BC30201: Expressie wordt verwacht.

                if [ValList] <> "" and then
                                       ~~~~
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(43) : error BC30456: ID is geen lid van System.Object.

                        output.Writeline ("function TurnOffVal" & mybase.ID & " ()")
                                                                  ~~~~~~~~~         
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(44) : error BC30451: De naam chr is niet gedeclareerd.

                        output.Writeline (chr (9) & "{")
                                          ~~~           
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(46) : error BC30451: De naam Split is niet gedeclareerd.

                        mValList = Split ([ValList], ",")
                                   ~~~~~                 
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(50) : error BC30451: De naam chr is niet gedeclareerd.

                            output.Writeline (chr (9) & "ValidatorEnable (" & strControl & ", false);"
                                              ~~~                                                     
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(50) : error BC30198: ')' wordt verwacht.

                            output.Writeline (chr (9) & "ValidatorEnable (" & strControl & ", false);"
                                                                                                     ~
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(53) : error BC30451: De naam chr is niet gedeclareerd.

                        output.Writeline (chr (9) & "}")
                                          ~~~           
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(54) : error BC30648: Tekenreeksconstanten moeten eindigen met een dubbel aanhalingsteken.

                        output.Writeline ("// End -->
                                          ~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(57) : error BC30456: ID is geen lid van System.Object.

                        output.AddAttribute ("onServerClick", mybase.ID & "_Click")
                                                              ~~~~~~~~~            
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(58) : error BC30456: ID is geen lid van System.Object.

                        output.AddAttribute ("onClick", "javascript:TurnOffVal" & mybase.ID & " (); if (typeof (Page_ClientValidate) == 'function')" &  "Page_ClientValidate ();")
                                                                                  ~~~~~~~~~                                                                                       
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(62) : error BC30456: CausesValidation is geen lid van System.Object.

                mybase.CausesValidation = false
                ~~~~~~~~~~~~~~~~~~~~~~~        
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(63) : error BC30456: Render is geen lid van System.Object.

                mybase.Render (output)
                ~~~~~~~~~~~~~         
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(74) : error BC30451: De naam Split is niet gedeclareerd.

                    mValList = Split ([ValList], ",")
                               ~~~~~                 
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(77) : error BC30469: Voor verwijzing naar een niet-gedeeld lid is een objectverwijzing vereist.

                        ValControl = Page.FindControl (mValList (index).ToString)
                                     ~~~~~~~~~~~~~~~~                            
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\MyApp.vb(79) : error BC30451: De naam UCase is niet gedeclareerd.

                            select case UCase (ValControl.GetType.ToString)
                                        ~~~~~


Overigens ook geprobeerd om Microsoft.Visualbasic.dll toe te voegen bij /r optie, met hetzelfde resultaat :(

Ik weet niet hoor, maar dit is een voorbeeld van internet (alleen variabele namen gewijzigd), ik doe gewoon wat fout. Maar goed, van de microsoft site wordt ik ook niet echt wijzer....

Hulp is zeer welkom.

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Je gebruikt .NET, maar je gebruikt de .NET methods niet ? :?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ehh, mis ik iets? .NET framework heeft alleen wat libraries geinstalleerd, gebruik voor de rest gewoon IIS & Webmatrix. Heb geen Visual Studio .NET of zoiets.

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Verder is het moeilijk om er iets zinnigs over te zeggen zonder relevante code.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
imports System
imports System.ComponentModel
imports System.Web.UI
imports System.Web.UI.WebControls
imports System.Web.UI.HtmlControls

namespace MenuControls

    public class MenuButton inherits System.Web.UI.WebControls.LinkButton

        property [ValList]() as string

            get
                dim ViewObj as object = ViewState ("ValList")

                if ViewObj is nothing then
                    return string.Empty
                else
                    return ViewObj.ToString
                end if
            end get

            set
                ViewState ("ValList") = Value
            end set

            protected Overrides sub Render (byval output as System.Web.UI.HtmlTextWriter)

                dim ReqObj as System.Web.HttpRequest = System.Web.HttpContext.Current.Request

                if [ValList] <> "" and then
                    if (ReqObj.Browser.Browser.ToString = "IE") and (cint (ReqObj.Browser.MajorVersion >= 4)) then
                        dim index as integer
                        dim mValList () as string
                        dim strControl as string

                        output.Writeline ()
                        output.Writeline ("<script language=javascript>")
                        output.Writeline ("<!-- Begin")
                        output.Writeline ("function TurnOffVal" & mybase.ID & " ()")
                        output.Writeline (chr (9) & "{")

                        mValList = Split ([ValList], ",")

                        for index = 0 to mValList.GetUpperBound (0)
                            strControl = mValList (index).ToString
                            output.Writeline (chr (9) & "ValidatorEnable (" & strControl & ", false);"
                        next

                        output.Writeline (chr (9) & "}")
                        output.Writeline ("// End -->
                        output.Writeline ("</script>")

                        output.AddAttribute ("onServerClick", mybase.ID & "_Click")
                        output.AddAttribute ("onClick", "javascript:TurnOffVal" & mybase.ID & " (); if (typeof (Page_ClientValidate) == 'function')" &  "Page_ClientValidate ();")
                    end if
                end if

                mybase.CausesValidation = false
                mybase.Render (output)

            end sub

            public sub DisableServerSideValidation ()

                dim ValControl as Control
                dim index as integer
                dim mValList () as string

                if [ValList] <> "" then
                    mValList = Split ([ValList], ",")

                    for index = 0 to mValList.GetUpperBound (0)
                        ValControl = Page.FindControl (mValList (index).ToString)
                        if not ValControl is nothing then
                            select case UCase (ValControl.GetType.ToString)
                                case "SYSTEM.WEB.UI.WEBCONTROLS.REGULAREXPRESSIONvALIDATOR"
                                    ctype (ValControl, RegularExpressionValidator).IsValid = true
                                case "SYSTEM.WEB.UI.WEBCONTROLS.REQUIREDFIELDVALIDATOR"
                                    ctype (ValControl, RequiredFieldValidator).IsValid = true
                                case "SYSTEM.WEB.UI.WEBCONTROLS.RANGEVALIDATOR"
                                    ctype (ValControl, RangeValidator).IsValid = true
                                case "SYSTEM.WEB.UI.WEBCONTROLS.COMPAREVALIDATOR"
                                    ctype (ValControl, CompareValidator).IsValid = true
                                case "SYSTEM.WEB.UI.WEBCONTROLS.CUSTOMVALIDATOR"
                                    ctype (ValControl, CustomValidator).IsValid = true
                            end select
                        end if
                    next
                end if


            end sub

    end class

end namespace


edit:

Voorbeeld heb ik van deze site.

[ Voor 8% gewijzigd door Verwijderd op 01-06-2004 15:58 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Verwijderd schreef op 01 juni 2004 @ 15:53:
Ehh, mis ik iets? .NET framework heeft alleen wat libraries geinstalleerd, gebruik voor de rest gewoon IIS & Webmatrix. Heb geen Visual Studio .NET of zoiets.
Wat heeft het gebruik van VS.NET hiermee te maken? Helemaal niks.

Het .NET framework biedt je oa een aantal classes aan, die in namespaces geklasseerd zijn, en die kan je gebruiken.
Waarom gebruik je dan nog de 'oude' VBscript functies?

Misschien moet je eerst maar eens eea lezen over wat het .NET framework is, wat het je biedt, en er eens mee spelen ipv al direct een usercontrol te maken zonder dat je blijkbaar weet wat .NET is.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ehhhrrrmmmm, exact voorbeeld van microsoft.com en dan tegen mij klagen, maar je hebt gelijk. Mijn kennis is nog niet groot genoeg..... :(

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Ik zie hier dat het in VB.NET wel mogelijk is om die Split etc... method te gebruiken, maar daar heb je de Microsoft.VisualBasic namespace voor nodig.

Kijk eens naar de member methods van de String class in .NET.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Hrmmm, you've got a point there. Namespace toegevoegd en deze ucase/chr errors zijn in ieder geval weg.

Bedankt :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Verwijderd schreef op 01 juni 2004 @ 16:04:
Hrmmm, you've got a point there. Namespace toegevoegd en deze ucase/chr errors zijn in ieder geval weg.

Bedankt :)
Euh ja, maar dat is niet echt de preferred way. Kijk toch maar eens naar de member methods van de string class.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

't zou waarschijnlijk ook al enorm gescheeld hebben als je een enter zou rammen tussen MenuButton en inherits op regel 8 :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
gorgi_19 schreef op 01 juni 2004 @ 16:13:
't zou waarschijnlijk ook al enorm gescheeld hebben als je een enter zou rammen tussen MenuButton en inherits op regel 8 :+
:?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic .NET:
1
public class MenuButton inherits System.Web.UI.WebControls.LinkButton

sniegoed in vb.net :P
Visual Basic .NET:
1
2
public class MenuButton 
     inherits System.Web.UI.WebControls.LinkButton

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
:P 8)7

Dat meen je niet. 8)7

https://fgheysels.github.io/


Verwijderd

Topicstarter
Zaten overigens nog een paar typefouten in. Buiten dat hou ik één fout over:

edit:

Laat maar, al opgelost....*doh*

[ Voor 64% gewijzigd door Verwijderd op 01-06-2004 16:28 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Ik kan geen VB.NET, maar moet je die property ook niet afsluiten?

Daarnaast vind ik ook wel dat je zelf je syntax errors moet kunnen oplossen.

Heb je nu trouwens al eens naar die string class en de member methods daarvan gekeken? (String.Split, String.ToUpper, ...)

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 is dol op gokken....
Ik denk dat de oorzaak ligt bij [rml]gorgi_19 in "[ asp.net] Control compileren lukt niet"[/rml] of vergelijkbaar

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

Trouwens, dit gaat zo nergens meer over... Compilerfouten moet je zelf op kunnen lossen. De oorzaak van deze fouten en problemen liggen in het feit dat je niet weet wat je aan het doen bent en wat je compiler probeert te zeggen. :)

Je bent bezig met custom classes, Render method overriden icm validator controls; niet allemaal de standaard en meest eenvoudige dingen. Tip: Begin eens rustig bij het begin en bouw het langzaam op. Kijk bijvoorbeeld eens op www.asp.net onder de Quickstart / Tutorials.

Dit gaat in ieder geval dicht.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.