Gemischtes / mishmash
Moderator: wriedmann
Gemischtes / mishmash
Hallo ich mal wieder...
hab viele Jahre AVFPX im Einsatz gehabt. Vorteil Foxpro rein, http raus. Der Teil für Http und Co ist ist in C# geschrieben.
https://github.com/claudefox/ActiveVFP/ ... r/App_Code
Viel gibts ja damit noch ein paar Ideen :
Gruß Rainer
hab viele Jahre AVFPX im Einsatz gehabt. Vorteil Foxpro rein, http raus. Der Teil für Http und Co ist ist in C# geschrieben.
https://github.com/claudefox/ActiveVFP/ ... r/App_Code
Viel gibts ja damit noch ein paar Ideen :
Gruß Rainer
Gemischtes / mishmash
Horst,
Something like which writes the number 42 to the memory location pointed to by ptrFile.
The FCreate() and other low level file functions return a PTR in VO but this PTR is not really a memory location but just a unique ID. That is why in X# we have changed these functions to return an IntPtr instead of a PTR.
If you compile with the /unsafe compiler option enabled then you can cast an IntPtr to a PTR and back.
Robert
PTR is considered "unsafe" because you can use that type to address random locations in memory.Horst wrote:Hallo
Eine Frage zu PTR.
LOCAL ptrFile AS PTR das führt zu einem Fehler - unsave context nun habe ich es in
LOCAL ptrFile AS INTPTR abgeändert und es kommt kein Fehler
Darf man das ? Kann man dann die FCreate etc Functionen mit gutem Gewissen nutzen ?
Something like
Code: Select all
BYTE(ptrFile) := 42,
The FCreate() and other low level file functions return a PTR in VO but this PTR is not really a memory location but just a unique ID. That is why in X# we have changed these functions to return an IntPtr instead of a PTR.
If you compile with the /unsafe compiler option enabled then you can cast an IntPtr to a PTR and back.
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
Gemischtes / mishmash
Hallo Robert
So i will use IntPtr
Question : I tryed to find out how XSharp handles the FOpen Function. The code is open source. so i was looking in GitHub but idont find it there.
Horst
So i will use IntPtr
Question : I tryed to find out how XSharp handles the FOpen Function. The code is open source. so i was looking in GitHub but idont find it there.
Horst
Gemischtes / mishmash
Horst,
Look in the folder https://github.com/X-Sharp/XSharpPublic ... /Functions for the file File.Prg.
It contains the class XSharp.IO.File. this class implements all that is needed, so opening, reading, writing, closing etc.
The FOpen() function calls FOpen2 which calls Sharp.IO.File.CreateFile(cFileName, oFileMode).
The handles returned are not the real "windows" handles but are random numbers stored in an IntPtr.
We are not using the windows file handles to make sure that our code also works on other platforms.
When running on Windows we use a special filestream object
See https://github.com/X-Sharp/XSharpPublic ... Core/Types, the file Win32FileStream.
This class has a hFile internally which is the real Win32 file handle. But that is not the file handle that is returned by FOpen().
Robert
Look in the folder https://github.com/X-Sharp/XSharpPublic ... /Functions for the file File.Prg.
It contains the class XSharp.IO.File. this class implements all that is needed, so opening, reading, writing, closing etc.
The FOpen() function calls FOpen2 which calls Sharp.IO.File.CreateFile(cFileName, oFileMode).
The handles returned are not the real "windows" handles but are random numbers stored in an IntPtr.
We are not using the windows file handles to make sure that our code also works on other platforms.
When running on Windows we use a special filestream object
See https://github.com/X-Sharp/XSharpPublic ... Core/Types, the file Win32FileStream.
This class has a hFile internally which is the real Win32 file handle. But that is not the file handle that is returned by FOpen().
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
Gemischtes / mishmash
Hallo
Ich habe nun versucht ein C# Webserver Beispiel mit IlSpy in Xsharp code zu übersetzen.
Fehler gibt es bei:
c#:
internal class QuizzServer : HttpServer
{
public QuizzServer(int threadCount) : base(threadCount)
{
}
}
xsharp:
INTERNAL CLASS QuizzServer INHERIT HttpServer
PUBLIC CONSTRUCTOR(threadCount AS LONG );
base(threadCount)
END CLASS
Ich habe keine Ahnung wie ich das übersetzen soll.
Horst
Ich habe nun versucht ein C# Webserver Beispiel mit IlSpy in Xsharp code zu übersetzen.
Fehler gibt es bei:
c#:
internal class QuizzServer : HttpServer
{
public QuizzServer(int threadCount) : base(threadCount)
{
}
}
xsharp:
INTERNAL CLASS QuizzServer INHERIT HttpServer
PUBLIC CONSTRUCTOR(threadCount AS LONG );
base(threadCount)
END CLASS
Ich habe keine Ahnung wie ich das übersetzen soll.
Horst
Gemischtes / mishmash
Hallo Horst,
Wolfgang
Code: Select all
INTERNAL CLASS QuizzServer INHERIT HttpServer
PUBLIC CONSTRUCTOR(threadCount AS LONG )
super( threadCount )
END CLASS
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
Gemischtes / mishmash
Danke Wolfgang
base = super
constructor = init
Muss ich mir in meinen alten Schädel meisseln
base = super
constructor = init
Muss ich mir in meinen alten Schädel meisseln
Gemischtes / mishmash
Hallo Horst,
unter X# ist immer "Constructor()" zu verwenden, nicht "Init()".
"Base" ist nur in C# gültig, in X# ist es wie in VO "super".
Wolfgang
unter X# ist immer "Constructor()" zu verwenden, nicht "Init()".
"Base" ist nur in C# gültig, in X# ist es wie in VO "super".
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
Gemischtes / mishmash
c#
HttpListenerContext context = httpListener.GetContext();
messages.Add(context);
Ist context in der Methode definiert, ist das dann in xsharp/vo Local ?
Und messages.add (httpListener.GetContext()) würde doch auch gehen?? Wird in der Methode nur einmal gebraucht.
Gruss Horst
HttpListenerContext context = httpListener.GetContext();
messages.Add(context);
Ist context in der Methode definiert, ist das dann in xsharp/vo Local ?
Und messages.add (httpListener.GetContext()) würde doch auch gehen?? Wird in der Methode nur einmal gebraucht.
Gruss Horst
Gemischtes / mishmash
Hallo Horst,
ist in X# so zu schreiben:
Wenn die Variable "context" sonst nirgends mehr gebraucht wird, kannst Du das ohne weiteres auch so schreiben:
Achtung auf Doppelpunkt statt Punkt!
Wolfgang
Code: Select all
HttpListenerContext context = httpListener.GetContext();
messages.Add(context);
Code: Select all
local context := httpListener:GetContext() as HttpListenerContext
messages:Add(context)
Code: Select all
messages:Add( httpListener:GetContext())
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