+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

2 Versionen im gleichen Projekt


(Rainer Laue) #1

Hallo zusammen,

ich entwickle mit VB6 unter Win7 32-bit. Im Einsatz steht seit einigen Jahren List und Label 17. Testhalber habe ich nun die Version 21 installiert und versucht, diese Komponenten in das Projekt einzubinden. Ziel ist, mittels einem bestimmten Form Features von L&L 21 zu testen. Diese spezielle Test-Form möchte ich also mit L&L 21 “bestücken”, während alle anderen Forms mit L&L 17 arbeiten.

Beim Versuch die LL21-Komponenten einzubinden komme ich aber auf einen Fehler. Anscheinend ist es nicht möglich, gleichzeitig 2 Versionen im Projekt zu haben. Hat jemand diesbezüglich bereits Erfahrungen sammeln können?

Danke
Rainer


(Jörg Wendisch) #2

Hallo Herr Laue,

wir verwenden in unserem VB6-Programm seit Ewigkeiten die Möglichkeit mehrere Versionen von List & Label zu verwenden.

Dazu gibt es bei uns eine “Druck-Klasse”, die wrapper-Funktionen enthält, die je nach benötigter Version die Parameter an die korrekte API-Funktion weiterreicht.

Beispiel:

mLLVersion ist eine Modul-Variable, die von außen gesetzt wird! Aufgerufen wird die Function LlDefineFieldExtW

Private [b]Declare [/b]Function Ll17DefineFieldExtW Lib "CMLL17.DLL" Alias "LlDefineFieldExtW" (ByVal hLlJob As Long, ByVal pszVarName As String, ByVal lpbufContents As String, ByVal lPara As Long, ByVal lpPtr As Any) As Long

Private [b]Declare [/b]Function Ll19DefineFieldExtW Lib "CMLL19.DLL" Alias "LlDefineFieldExtW" (ByVal hLlJob As Long, ByVal pszVarName As String, ByVal lpbufContents As String, ByVal lPara As Long, ByVal lpPtr As Any) As Long

Private [b]Declare [/b]Function Ll21DefineFieldExtW Lib "CMLL21.DLL" Alias "LlDefineFieldExtW" (ByVal hLlJob As Long, ByVal pszVarName As String, ByVal lpbufContents As String, ByVal lPara As Long, ByVal lpPtr As Any) As Long

Private [b]Function [/b]LlDefineFieldExtW(ByVal hLlJob As Long, ByVal pszVarName As String, ByVal lpbufContents As String, ByVal lPara As Long, ByVal lpPtr As String) As Long

Select Case mLlVersion
   Case LLVersion17
      LlDefineFieldExtW = Ll17DefineFieldExtW(hLlJob, pszVarName, lpbufContents, lPara, lpPtr)
   Case LLVersion19
      LlDefineFieldExtW = Ll19DefineFieldExtW(hLlJob, pszVarName, lpbufContents, lPara, lpPtr)
   Case LLVersion21
      LlDefineFieldExtW = Ll21DefineFieldExtW(hLlJob, pszVarName, lpbufContents, lPara, lpPtr)
   Case Else

End Select

End Function

Es gibt sicherlich elegantere Möglichkeiten, aber so funktioniert es seit etlichen Jahren problemlos!

Gruß

Jörg Wendisch


(combit Support - Christian Rauchfuß) #3

Hallo Herr Laue,

vielen Dank für Ihren Beitrag.

Die Verwendung mehrerer verschiedener List & Label Versionen in einer Anwendung stellt kein Problem dar. Der Beitrag von Herrn Wendisch ist ein schönes Beispiel hierfür.

Was für einen Fehler erhalten Sie? Könnten Sie diesbezüglich die Fehlermeldung selbst und eine detaillierte Beschreibung der Vorgehensweise beim Einbinden posten?

Mit freundlichen Grüßen

Christian Rauchfuß
Technischer Support
combit GmbH


(Rainer Laue) #4

Hallo Herr Wendisch,

ich kann jedoch nur mit der entsprechenden Version (hier 21) arbeiten, wenn ich diese in mein VB6-Projekt einbinden kann. Das ist aber nicht möglich. Sobald ich eine V21-Komponente in Visual Basic einzubinden versucht, erscheint eine Fehlermeldung - eine Referenz auf die Komponente ist so nicht möglich.

Ich hatte gestern Abend Ihrer Frau Knoche per Mail einen entsprechenden Screen-Shot mit der Fehlermeldung geschickt. Vielleicht könnten Sie mit Frau Knoche diesbezüglich Kontakt aufnehmen.

Freundliche Grüsse
R. Laue


(Rainer Laue) #5

Hallo Herr Rauchfuss,

ich werde am Abend nochmals den Screen-Shot erstellen und Ihnen zustellen. Vielleicht gehe ich falsch vor - bin mir dessen aber nicht bewusst. Normalerweise haben wir nur eine Version im Einsatz - hier geht es aber um das
dedizierte Testen einer Komponente in V21 (später V22).

Danke für Ihre Unterstützung.

Rainer Laue


(Rainer Laue) #6

Hallo zusammen,

das Problem wurde zusammen mit den Spezialisten der Combit abgeklärt. Die Verwendung mehrerer OCX-Komponenten mit identischen Namen (hier in den Versionen 17 und 21) ist nicht möglich. Dazu gibt es auch
keinen Workaround. Nur der Vorschlag von Hr. Wendisch ist gangbar.

Vielen Dank für die Unterstützung
Rainer Laue