Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  VB6 in Visual Studio 2010 Express öffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  VB6 in Visual Studio 2010 Express öffnen (7547 mal gelesen)
Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

ACAD 2019
WIN 7 64bit
Intel Xenon CPU E5-1620 3.60GHz
16GB RAM

erstellt am: 25. Jun. 2010 08:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo an Alle,

ich verwende ein VBA-Makro (von der Microsoft-Website) um meine VBA-Projekte in VB6 zu wandeln.
Das funktioniert recht gut. Dann aber schaffe ich es nicht diese erstellten (Projekt)Dateien mit Visual Studio 2010 Express zu öffen.
Gibt es einen Trick. Oder kann man mit Visual Studio 2010 Express keine VB6 Dateien öffnen?

Gruß, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 25. Jun. 2010 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

imho ist das Einlesen von VB6 (und damit das Portieren nach dotNET-Struktur) nur im Professional-VS enthalten und nicht in der Express-Version.

Die VB6 Dateien sind aber ganz normaler ASCII-Code und damit kannst Du den Code per Copy&Paste von VB6 nach VS kopieren, einzige Ausnahme sind die Formulare, die sind aber durch die viel größere Funktionalität am besten neu zu gestalten.

Noch eine Hilfestellung zu Konvertierung: >>>hier<<<

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 28. Jun. 2010 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

ich bin der Verzweiflung nahe. Ich bin inzwischen auch auf VB 2008 umgestiegen mit VB 2010 bin ich gar nicht zu recht gekommen. Was gar nicht klappen will ist das Debuggen. Obwohl ich die Projektfile schon bearbeitet habe, so daß das Debuggen eigentlich gehen müsste, kriege ich immer die Fehlermeldung:

Ein Projekt mit dem Ausgabetyp "Klassenbibliothek" kann nicht direkt gestartet werden.
Um das Projekt zu debuggeb, fügen sie dieser Projektmappe ein ausführbares Projekt hinzu das auf das Bibliotheksprojekt verweist.......

Was ist damit gemeint?

Gruß, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 28. Jun. 2010 20:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

schick mir dein VBPROJ-File und den Ort, wo Du Dein AutoCAD installiert hast, ich versuch das mal händisch einzustellen.
Dann kann ich auch die Fragen leichter beantworten.

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 29. Jun. 2010 08:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Allgmein.zip

 
Guten Morgen Alfred,

meine Projektfile hängt an.
Der Pfad meiner Acad.exe ist:
"C:\Programme\AutoCAD 2010\acad.exe"
Ich habe es selbst auch schon probiert ein zustellen aber es geht nicht.
Vielen Dank schon mal.

Gruß, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 29. Jun. 2010 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


CADde_Theo37_VS2008Vorlage_20100629_AN01.zip

 
Hi,

anbei 2 Dateien, sichere zuerst Deine Dateien und überspiele mal die von mir ersetzenden ALLGEMEIN.VBPROJ und ALLGEMEIN.VBPROJ.USER

Nicht sicher bin ich mir bei der Dateinamensvergabe, bei Dir hat ein E bei ALLGEMEIN gefehlt und ich weiss nicht, ob das nur durchs kopieren zustandekam oder so war, ich hab's innerhalb der Files richtig geschrieben, wenn das nicht passen sollte, dann musst Du mittels suchen/ersetzen wieder zurückkorrigieren.

Die Dateien sollten passen, würden zumindest bei VS2008-Prof, ein Express hab ich nicht und konnte es daher nicht probieren.

Aufpassen ev. bei Einstellungen wie OPTION STRICT, .... die könnten beim Kopieren von meiner Vorlage umgestellt sein, ebenso die Warnungs-Ausgaben.

Der wesentlichste Unterschied ist, dass die Angabe der Startapplikation in der VBPROJ.USER-Datei ist und nicht in der VBPROJ.

Hoffe, es passt jetzt für Dich, - alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 29. Jun. 2010 14:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,
das hat mir schon viel geholfen. Ich kann jetzt Debuggen. Ab und zu kommt immer noch Fehlermeldung, der Qulltext wäre verändert worden. Aber im großen und ganzen funktioniert es recht gut. ich habs gleich als Vorlage abgespeichert. Danke. Erlaube mir noch eine Frage. Unten ist eine recht einfache Prozedur, die nur das übergebene Autocadobjekt in den Hintergrund schiebt. Leider bekomme ich viele Fehlermeldungen, ich müsste mit new neue Instanzen erstellen. Könntest Du den Programmtext etwas optimieren. Die Variablen sind glaub ich richtig. Aber was muß ich alles mit NEW machen.

Gruß, Theo


Public Sub NachUnten(ByVal Objekt As AcadObject)
        Dim arr(0) As AcadObject
        Dim eDictionary As AcadDictionary
        Dim sentityObj As AcadSortentsTable

        eDictionary = ThisDrawing.ModelSpace.GetExtensionDictionary
        eDictionary = myLayout.GetExtensionDictionary
        sentityObj = New AcadSortentsTable
        On Error Resume Next
        sentityObj = eDictionary.GetObject("ACAD_SORTENTS")
        If Err.Number <> 0 Then
            If sentityObj Is Nothing Then
                sentityObj = eDictionary.AddObject("ACAD_SORTENTS", "AcDbSortentsTable")
            End If
            Err.Clear()
        End If
        On Error GoTo 0
        arr(0) = ThisDrawing.ObjectIdToObject(Objekt.ObjectID)
        sentityObj.MoveToBottom(arr)
    End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 29. Jun. 2010 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

der Code stammt, wenn ich es recht sehe, aus der VBA-Hilfe aus AutoCAD. Als solches scheint dieses richtig, mit der Ausnahme, dass ich das rundherum nicht sehe, und damit kann ich nur erahnen, was das Problem sein könnte:

Die Variable 'ThisDrawing' hat in VBA eine vordefinierte Zuweisung auf das jeweils aktuelle Document. Diese Zuweisung gibt es nicht, wenn Du eine dotNET-Applikation erstellst, dafür musst Du selbst sorgen.

Weiters halte ich dieses Statement für ungewöhnlich:
  arr(0) = ThisDrawing.ObjectIdToObject(Objekt.ObjectID)

Korrigiere das in:
  arr(0) = Objekt


Jedenfalls wäre wichtig, an welcher Zeile Dein Code mit der Fehlermeldung beim Debuggen stehen bleibt, und welche Fehler das genau wären.
Ich verstehe schon, dass Du nicht alles von Deinem Projekt hier offenbaren willst, aber einfacher könnte es sein, den gesamten Source zu sehen, dann brauch ich nur starten, um zu sehen.

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 29. Jun. 2010 14:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Formen.zip

 
Hi Alfred,
das mit der VBA Hilfe stimmt und dort ist er auch einwandfrei gelaufen.

Die Fehlermeldung bekomme ich bei der zeile:

"If Err.Number <> 0 Then"

Thisdrawing ist gelöst.

Du kannst gern das drumherum sehen, ist nichts besonderes. Die ganze Klasse dient nur dazu Objekte farbig zu hinterlegen. Ich habe bisher immer nur "Dreieck" gestartet, die anderen werden noch schlechter funktionieren.

Danke. Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 29. Jun. 2010 16:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


FormenMain.zip

 
Hi,

ich hab ein wenig 'zurechtgerückt', jetzt geht's.

Wichtig scheint mir, dass die Command-Aufrufe mit 'Shared' definiert sein sollten, weiters ist es schon weniger Code zu schreiben, wenn mit 'Strict Off' gearbeitet wird, aber die Fehler bekommst Du damit auch nicht serviert (bei Strict On siehst Du Typkonflikte gleich bei tippen!). Ich habs jedenfalls umgedreht und ein paar 'CType' eingebaut, ich hoffe, es ist verständlich für Dich.

Beiliegend das gesamte Projekt ==> Verweise austauschen und im VBPROJ.USER auf Deinen Acad-EXE-Pfad tauschen, fertig.

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 29. Jun. 2010 16:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Alfred,

daß Du mir ein ganzes Projekt daraus gemacht hast. Aber ich werds nicht kpl. übernehmen sonder von der Formen.vb Zeile für Zeile übernehmen. Vileicht lern ich was draus und komme beim nächsten Projekt alleine weiter.
Falls es nicht klappt kann ich immer noch das ganze Projekt verwenden.

Danke und Gruß, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

ACAD 2019
WIN 7 64bit
Intel Xenon CPU E5-1620 3.60GHz
16GB RAM

erstellt am: 30. Jun. 2010 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

jetzt ist mir doch noch ein Problemchen aufgefallen. Nachdem der Benutzer die beiden Punkte eingegeben hat, setze ich P2 = P0. Und danach verändere ich den Y-Wert von P2. Es scheint als würede ich damit auch den Y-Wert von P0 verändern.
Kann das sein? wie verhindere ich das?

Gruß, Theo


<Autodesk.AutoCAD.Runtime.CommandMethod("Quadrat")> _
    Public Shared Sub Quadrat()
        Dim mySolid As AcadSolid
        Dim myLayout As AcadBlock
        Try
            P0 = CType(ThisDrawing.Utility.GetPoint(, "Erster Eckpunkt:"), Double())
            P1 = CType(ThisDrawing.Utility.GetPoint(, "Gegenüberliegender Eckpunkt:"), Double())
            P2 = P0
            P2(1) = P1(1) 'hier passiert der Fehler, es ändert sich auch P0(1)
            P3 = P1
            P3(1) = P0(1)

            myLayout = ThisDrawing.ActiveLayout.Block
            mySolid = myLayout.AddSolid(CObj(P0), CObj(P2), CObj(P3), CObj(P1))

            NachUnten(myLayout, CType(mySolid, AcadEntity))
        Catch ex As Exception
            Call ThisDrawing.Utility.Prompt("Fehler aufgetreten: " & ex.Message)
        End Try
    End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Jun. 2010 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

statt: P2 = P0

Code:
Redim P2(2)
P2(0) = P0(0)
P2(1) = P0(1)
P2(2) = P0(2)

Dein ursprüngliches Statement bedeutet mal P2 zum gleichen Objekt wie P0, also keine Kopie des Objekts, das kannst Du nur, wenn Du ein neues Objekt erstellst und dann die Werte einzel umsetzt.

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 30. Jun. 2010 16:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke

und noch eine Frage:

die Funktion:

Private Shared Function acHatchPatternTypePreDefined() As Integer    'war Long
        Throw New NotImplementedException
    End Function

funtioniert nicht. Was kann man da machen??

Gruß Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Jun. 2010 18:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

bekommst Du eine Fehlermeldung? Oder wie äußert sich 'funktioniert nicht'?

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 01. Jul. 2010 08:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen Alfred,

das Program sprang nach der Funktion immer auf die Zeile:
Catch Ex as Exception

Und ich bekam eine Fehlermeldung in der ACAD Befehlszeile.
Ich habe das Problem jetzt so gelöst:

            PatternType = 1

Noch eine ganz andere Frage habe ich noch:
Wenn ich jetzt mal so weit bin, daß ich eine funktionierede DLL habe. Was muß ich dann machen um diese auf einem anderen Rechner laufen zu lassen. Bei uns ist überall nur ACAD2010 instaliert. Was muß auf den anderen Rechnern instaliert werden und was muß evtl. eingestellt werden? Die DLL wollte ich dann mit Lisp laden.

Gruß, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 01. Jul. 2010 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> das Program sprang nach der Funktion immer auf die Zeile:
>> Catch Ex as Exception

Das sollte es ja auch, denn mit  Throw New ...Exception  weist Du die Subroutine an, eine Fehlermeldung zu initiieren, die dann in der übergeordneten Routine abgehandelt wird, demnach muss die übergeordnete Routine ins  Catch  hineinfliegen.


>> Was muß ich dann machen um diese auf einem anderen Rechner laufen zu lassen

Mit Befehl NETLOAD laden, das ist alles. Solange Du keine eigenen Assemblys einbindest, die nicht Bestandteil von AutoCAD oder Framework sind, ist keine weitere Aktion notwendig. DLL auf die lokale Harddisk kopieren, denn aus dem Netzwerk lässt es sich oft mangels Berechtigungen nicht starten, in diesen Fällen würdest Du eine Fehlermeldung beim Befehl NETLOAD bekommen.

- alfred -

------------------
www.hollaus.at

Theo37
Mitglied
Techniker


Sehen Sie sich das Profil von Theo37 an!   Senden Sie eine Private Message an Theo37  Schreiben Sie einen Gästebucheintrag für Theo37

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 01. Jul. 2010 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

inzwischen läuft es richtig gut. Ich hab inzwischen auch schon meine erste Userform erstellt, ist ähnlich wie in VBA nur etwas umfangreicher.
Probleme habe ich etwas mit diesen AutoCAd konstanten.
Zb. ging bei VBA folgenede Zeile:
ThisDrawing.Regen (ModelSpace)

Bei Net geht:
ThisDrawing.Regen(AcRegenType.acActiveViewport)

ist aber nicht das selbe.

Manche Konstante finde ich unter common z.B.
Common.AcCoordinateSystem.acWorld

Aber da komm ich ehr zufällig drauf. Gibts ne sichere Methode?
Kann ich das irgendwo nachsehen? Gibts ne Hilfe(wie bei VBA) dazu?
Noch besser wäre ne Automation, wie bei der Thisdrawing-Variable.

Danke, Theo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz