Gma.QrCodeNet.Encoding.dll
Moderator: wriedmann
Gma.QrCodeNet.Encoding.dll
Hallo Franz,
das using in C# wird in X# mit begin using ... end using übersetzt.
Doku siehe hier:
https://www.xsharp.eu/help/command_begin-using.html
Wolfgang
das using in C# wird in X# mit begin using ... end using übersetzt.
Doku siehe hier:
https://www.xsharp.eu/help/command_begin-using.html
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Gma.QrCodeNet.Encoding.dll
Hallo Wolfgang,
ich habs jetzt so übersetzt:
Da bekomme ich jede Menge Fehler, ich fürchte das wird nichts, also Deckel drauf und forget it, für ein Testprojekt aus Interesse ist mir der Aufwand zu hoch.
Was mich wundert: dass noch niemand eine QRCode-Routine verwendet, die man in VO/X# Programme einbinden kann, wo doch überall danach verlangt wird (z.B. comp.lang.clipper.visual-objects)?
Was aber trotzdem noch interessant wäre: wie man das ILSpy-X#-Plugin einbindet und einsetzt, da ich ja eine C# Dll habe, die diese Gma.QrCodeNet.Encoding.dll verwendet.
ich habs jetzt so übersetzt:
Code: Select all
USING Gma.QrCodeNet.Encoding
USING Gma.QrCodeNet.Encoding.Windows.Render
...
LOCAL qrEncoder AS QREncoder
LOCAL qrCode AS QrCode
LOCAL renderer AS GraphicsRenderer
LOCAL fms AS FixedModuleSize
LOCAL stream AS FileStream
qrEncoder := QrEncoder{ErrorCorrectionLevel.H}
qrCode := qrEncoder.Encode("Hello World!")
renderer := GraphicsRenderer{fms := FixedModuleSize{5, QuietZoneModules.Two}, System.Drawing.Brushes.Black, System.Drawing.Brushes.White}
BEGIN USING VAR stream := FileStream{@"c:tmpTestQR.png", FileMode.Create}
renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream)
END USING
Was mich wundert: dass noch niemand eine QRCode-Routine verwendet, die man in VO/X# Programme einbinden kann, wo doch überall danach verlangt wird (z.B. comp.lang.clipper.visual-objects)?
Was aber trotzdem noch interessant wäre: wie man das ILSpy-X#-Plugin einbindet und einsetzt, da ich ja eine C# Dll habe, die diese Gma.QrCodeNet.Encoding.dll verwendet.
Gma.QrCodeNet.Encoding.dll
Hallo Franz,
Du weisst dass DU den C#-Code (innerhalb derselben Solution als separates Projekt) behalten kann und Methoden einfach von X# aus aufrufen kann, als wäre es eine andere X#-Klasse? Das spart Umbauzeit.
Dick
Du weisst dass DU den C#-Code (innerhalb derselben Solution als separates Projekt) behalten kann und Methoden einfach von X# aus aufrufen kann, als wäre es eine andere X#-Klasse? Das spart Umbauzeit.
Dick
Gma.QrCodeNet.Encoding.dll
Hi Franz,
sorry for the "strange" names....
- ILSpy 5 plugin : This the XSharp language support for ILSpy 5.00
- ILSpy 5.02 plugin : This one was the first version to support ILSpy 5.02
- ILSpy502.XSharpLanguage.Plugin.dll.zip : This one is the latest version supporting ILSpy 5.02, with some issues solved.
I suggested, that you get the Zip file with the binaires of the V6.2.1 : (Portable version, just unzip it)
https://github.com/icsharpcode/ILSpy/re ... tag/v6.2.1
Then, grab the XSharp Plugin, either from our Download Section or there :
https://github.com/X-Sharp/ILSpy-Plugin ... 1.20201230
Unzip the DLL in the same folder as ILSpy.exe
Run ILSpy : You should have a ComboBoxList with the available languages : Xsharp should be there.
Now, open your C# Dll/Exe (or drop it on the left TreeView) : You should see the Namespaces/classes/methods in the TreeView, and the XSharp Code on the right.
HTH
Fab
sorry for the "strange" names....
- ILSpy 5 plugin : This the XSharp language support for ILSpy 5.00
- ILSpy 5.02 plugin : This one was the first version to support ILSpy 5.02
- ILSpy502.XSharpLanguage.Plugin.dll.zip : This one is the latest version supporting ILSpy 5.02, with some issues solved.
I suggested, that you get the Zip file with the binaires of the V6.2.1 : (Portable version, just unzip it)
https://github.com/icsharpcode/ILSpy/re ... tag/v6.2.1
Then, grab the XSharp Plugin, either from our Download Section or there :
https://github.com/X-Sharp/ILSpy-Plugin ... 1.20201230
Unzip the DLL in the same folder as ILSpy.exe
Run ILSpy : You should have a ComboBoxList with the available languages : Xsharp should be there.
Now, open your C# Dll/Exe (or drop it on the left TreeView) : You should see the Namespaces/classes/methods in the TreeView, and the XSharp Code on the right.
HTH
Fab
XSharp Development Team
fabrice(at)xsharp.eu
fabrice(at)xsharp.eu
Gma.QrCodeNet.Encoding.dll
Hallo Franz,
was bekommst Du für Fehler?
Vielleicht fehlen die entsprechenden Using-Anweisungen?
Anders als bei VO sind im .NET Framework die Klassen in Namespaces organisiert.
Im XIDE-Editor kannst Du auf einer nicht erkannten Klasse einen Rechtsklick machen und "Search for type xxx in namespaces" wählen, und damit das passende Using-Statement ergänzen lassen.
Und was den Bedarf an QR-Codes betrifft: die meisten werden diesen auf einem Druck benötigen, und ich nehme an, die meisten Drucktools bringen das von Haus aus mit, ebenso wie alle möglichen Internet-Libraries.
Wolfgang
P.S. es mag manchmal frustrierend sein, sich durch die Features des .NET Framework durchzukämpfen, aber es lohnt sich definitiv
was bekommst Du für Fehler?
Vielleicht fehlen die entsprechenden Using-Anweisungen?
Anders als bei VO sind im .NET Framework die Klassen in Namespaces organisiert.
Im XIDE-Editor kannst Du auf einer nicht erkannten Klasse einen Rechtsklick machen und "Search for type xxx in namespaces" wählen, und damit das passende Using-Statement ergänzen lassen.
Und was den Bedarf an QR-Codes betrifft: die meisten werden diesen auf einem Druck benötigen, und ich nehme an, die meisten Drucktools bringen das von Haus aus mit, ebenso wie alle möglichen Internet-Libraries.
Wolfgang
P.S. es mag manchmal frustrierend sein, sich durch die Features des .NET Framework durchzukämpfen, aber es lohnt sich definitiv
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Gma.QrCodeNet.Encoding.dll
Hi Franz,
I think it may sound extremely difficult, but once we find what's wrong, you will see it's actually extremely easy. It's just that it's a new environment that makes everything look complicated.
I think what you haven't done, is add a reference to this dll, which is the equivalent of including a library in VO. Without it, X# has no idea you are trying to use this dll.
Are you using XIDE or VS? Please let me know and I will give you directions on what to do. Or, if you'd like, please send me this dll and I will send you back a XIDE or VS project doing what you want.
.
I think it may sound extremely difficult, but once we find what's wrong, you will see it's actually extremely easy. It's just that it's a new environment that makes everything look complicated.
I think what you haven't done, is add a reference to this dll, which is the equivalent of including a library in VO. Without it, X# has no idea you are trying to use this dll.
Are you using XIDE or VS? Please let me know and I will give you directions on what to do. Or, if you'd like, please send me this dll and I will send you back a XIDE or VS project doing what you want.
.
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu
Gma.QrCodeNet.Encoding.dll
Hi Franz,
personally I use the QRCoder package, but... it should be very near.
The attached zip file is a very simple solution that use QRCoder as a Nuget Package, and generate a simple QRCode.
I hope you can find it usefull.
Regards,
Fab
personally I use the QRCoder package, but... it should be very near.
The attached zip file is a very simple solution that use QRCoder as a Nuget Package, and generate a simple QRCode.
Code: Select all
USING System
USING System.Collections.Generic
USING System.Linq
USING System.Text
USING System.Drawing
USING QRCoder
FUNCTION Start() AS VOID STRICT
Console.WriteLine("Hello World!")
//
LOCAL qrGen AS QRCodeGenerator
LOCAL qrData AS QRCodeData
LOCAL code AS QRCode
LOCAL codeImage AS Bitmap
//
qrGen := QRCodeGenerator{}
qrData := qrGen:CreateQrCode("The text which should be encoded.", QRCodeGenerator.ECCLevel.Q)
code := QRCode{qrData}
codeImage := code:GetGraphic(20)
//
codeImage:Save( "testQRCode.jpg" )
//
Console.WriteLine("Press any key to continue...")
Console.ReadKey()
Regards,
Fab
- Attachments
-
- QRCoder_Test.zip
- (3.75 KiB) Downloaded 69 times
XSharp Development Team
fabrice(at)xsharp.eu
fabrice(at)xsharp.eu
Gma.QrCodeNet.Encoding.dll
Hi Fabrice
Thank you for your detailed description, I installed newest version of ILSpy and your Plugin!
Now I can go forward to look at the code of my C# DLL, which must include a routine to generate QR Codes.
Franz
Thank you for your detailed description, I installed newest version of ILSpy and your Plugin!
Now I can go forward to look at the code of my C# DLL, which must include a routine to generate QR Codes.
Franz
Gma.QrCodeNet.Encoding.dll
Hallo Wolfgang
Ich habe die Using Anweisungen jetzt an eine andere Stelle platziert und damit erstmal die Fehler auf eine überschaubare Menge reduziert:
Nun habe ich noch 6 Fehler:
Das "LOCAL stream" muß man wahrscheinlich noch anders definieren wegen dem USING, denke ich.
Ich habe die Using Anweisungen jetzt an eine andere Stelle platziert und damit erstmal die Fehler auf eine überschaubare Menge reduziert:
Code: Select all
USING Gma.QrCodeNet.Encoding
USING Gma.QrCodeNet.Encoding.Windows.Render
USING System.IO
USING System.Drawing
Code: Select all
error XS0120: An object reference is required for the non-static field, method, or property 'Gma.QrCodeNet.Encoding.QrEncoder.Encode(string)'
error XS0136: A local or parameter named 'stream' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
error XS0211: Cannot take the address of the given expression
error XS0120: An object reference is required for the non-static field, method, or property 'Gma.QrCodeNet.Encoding.QrCode.Matrix'
error XS0103: The name 'ImageFormat' does not exist in the current context
error XS0118: 'renderer' is a variable but is used like a type
Gma.QrCodeNet.Encoding.dll
Hallo Franz,
Die Methode Encode ist keine statische Methode, sondern muss auf eine existierendes Objekt angewendet werden
Irgendwie hast Du eine lokale Variable "stream" schon weiter oben definiert - im using wird die dann nochmal definiert, und das funktioniert nicht. Nimm die oben raus.
Da muss ich den Code sehen.
Siehe oben, "Matrix" ist keine statische Variable, sondern muss auf ein Objekt angewendet werden.
es gibt keine definierte Variable ImageFormat
da müsste ich den Code sehen.
Ich habe so den Verdacht, dass Du nicht wirklich viel Ahnung von dem hast, was Du da probierst zu schreiben.
Du solltest Dir auf jeden Fall mal diese Einträge durchlesen und verstehen:
https://docs.xsharp.it/doku.php?id=name ... _reference
https://docs.xsharp.it/doku.php?id=namespaces
https://docs.xsharp.it/doku.php?id=assemblies
Und vielleicht nochmal versuchen zu verstehen, was eine statische Methode in .NET ist.
Wolfgang
Code: Select all
error XS0120: An object reference is required for the non-static field, method, or property 'Gma.QrCodeNet.Encoding.QrEncoder.Encode(string)'
Code: Select all
error XS0136: A local or parameter named 'stream' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
Code: Select all
error XS0211: Cannot take the address of the given expression
Code: Select all
error XS0120: An object reference is required for the non-static field, method, or property 'Gma.QrCodeNet.Encoding.QrCode.Matrix'
Code: Select all
error XS0103: The name 'ImageFormat' does not exist in the current context
Code: Select all
error XS0118: 'renderer' is a variable but is used like a type
Ich habe so den Verdacht, dass Du nicht wirklich viel Ahnung von dem hast, was Du da probierst zu schreiben.
Du solltest Dir auf jeden Fall mal diese Einträge durchlesen und verstehen:
https://docs.xsharp.it/doku.php?id=name ... _reference
https://docs.xsharp.it/doku.php?id=namespaces
https://docs.xsharp.it/doku.php?id=assemblies
Und vielleicht nochmal versuchen zu verstehen, was eine statische Methode in .NET ist.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it