Andreas G., 31.03.2008 18:40: Hi!
Ich habe hier eine für mich wichtige frage zur erstellen von DLLs und deren weitergabe.
Ich habe mir mit Purebasic eine DLL erstellt. Die MD5 befehle von Purebasic in sich hat ,habe das aber alles so erweitert das sie von Profan aufgerufen werden können und als eigener Tread laufen ohne Profan anzuhalten und mit Message zu verständigen wenn Tread fertig ist.
Ich würde gerne die DLL hier frei zu verfügung stellen aber habe bedenken wegen Outsourcing.
Meine Frage ist habe ich genug eigenes erarbeitet oder könnte man mich wegen Outsourcing der
Befehle MD5FileFingerprint() ,MD5Fingerprint() ,IsThread() belangen.
Wenn jemand da zu näheres wüste wäre ich für Beratung sehr dankbar.
Der Quellcode der von mir erstellten MD5 DLL
ProcedureDLL MD5_FILE_Thread(Lnge.l)
Shared Text.s
adrre.l = PeekL((Lnge.l + 0 ))
lenge.l = PeekL((Lnge.l + 4 ))
ziel1.l = PeekL((Lnge.l + 8 ))
tid.l = PeekL((Lnge.l + 12))
hwd.l = PeekL((Lnge.l + 16))
msg.l = PeekL((Lnge.l + 20))
lpa.l = PeekL((Lnge.l + 24))
wpa.l = PeekL((Lnge.l + 28))
Text = PeekS(adrre.l, lenge.l)
Text = MD5FileFingerprint(Text)
PokeS(ziel1.l, Text)
If (hwd.l > 0) And (msg.l > 0)
result.l = SendMessage_ (hwd.l,msg.l,wpa.l,tid.l)
EndIf
ProcedureReturn @Text
EndProcedure
ProcedureDLL MD5_BUFFER_Thread(Lnge.l)
Shared Text.s
adrre.l = PeekL((Lnge.l + 0 ))
lenge.l = PeekL((Lnge.l + 4 ))
ziel1.l = PeekL((Lnge.l + 8 ))
tid.l = PeekL((Lnge.l + 12))
hwd.l = PeekL((Lnge.l + 16))
msg.l = PeekL((Lnge.l + 20))
lpa.l = PeekL((Lnge.l + 24))
wpa.l = PeekL((Lnge.l + 28))
;Text = PeekS(adrre.l, lenge.l)
Text.s = MD5Fingerprint(adrre.l, lenge.l)
PokeS(ziel1.l, Text)
If (hwd.l > 0) And (msg.l > 0)
result.l = SendMessage_ (hwd.l,msg.l,wpa.l,tid.l)
EndIf
ProcedureReturn @Text
EndProcedure
ProcedureDLL Start_Thread_MD5_File(Lnge.l)
Shared MD5A.s
Thread.l = CreateThread(@MD5_FILE_Thread(), Lnge.l)
PokeL((Lnge.l + 12), Thread.l)
ProcedureReturn Thread.l
EndProcedure
ProcedureDLL Start_Thread_MD5_Buffer(Lnge.l)
Shared MD5A.s
Thread.l = CreateThread(@MD5_BUFFER_Thread(), Lnge.l)
PokeL((Lnge.l + 12), Thread.l)
ProcedureReturn Thread.l
;ProcedureReturn Lnge.l
EndProcedure
ProcedureDLL INFO_DLL()
Shared MD5A.s
MD5A = "MD5 DLL V0.01 von Andreas Gaida"
ProcedureReturn @MD5A
EndProcedure
ProcedureDLL Status_MD5_Thread(Lnge.l)
Shared MD5A.s
Thread.l = IsThread(Lnge.l)
ProcedureReturn Thread.l
EndProcedure
MfG
Andreas
H B., 01.04.2008 16:58: Also ich würde es NICHT machen, alleine wegen
der Cipher und Thread - Libraries. Da gab es früher
schon öfter Ärger deswegen. Nur ganz Hausgemachtes
ist erlaubt.
Kannst die DLL aber ohne schlechtes Gewissen für dich privat
nutzen.
Lies aber auch noch die Nutzungsbedingungen in der PB-Hilfe,
da steht es auch noch unter Rechtliches drin.
Alle Bestandteile, Bibliotheken und alle Binär-Dateien sind von Fantaisie Software
urheberrechtlich geschützt. Die PureBasic Lizenz verbietet ausdrücklich die
Erstellung von DLL's, deren Hauptfunktion es ist, als ein 'Wrapper' für PureBasic-
Funktionen zu dienen.
Andreas G., 03.04.2008 15:01: Hi!
Thx für den Ratschlag ,werde ihm auch befolgen.
Da man heut zu tage für jede kleinigkeit gleich um zig Tausende verklagt werden kann ist es wohl gesünder für mich.
Auch wenn mein Gewissen auch andersrum rein wäre , wenn jeder soviel Geld für Software ausgeben würde wie ich
hätte die Welt nicht nur einen Bill Gates.
MfG
Andreas
H B., 03.04.2008 17:46: Ja, belassen wir es hierbei.
Noch als Anmerkung :
Mir wäre es ja egal, aber bedenke, dass hier auch so
mancher PBler (als Gast) mitliest. Da passiert es schnell, dass
jemand einen Link im PB-Forum nach hier macht, und es dann zu
unnötigen Diskussionen kommt.
Ich selber habe vor Jahren in einem relativ unbekannten
Basic-Forum erlebt, wie auf einmal da bekannte Leute aus
anderen Programmier - Foren da waren.
David Strutz, 03.04.2008 18:26: Zitat von ""H.Brill"": Nur ganz Hausgemachtes
ist erlaubt.
Ich glaube ganz sooo ist es auch nicht.
Es ist hingegen sicherlich unerwünscht/nicht erlaubt wenn Du eine Bibliothek publizierst welche ein reiner Wrapper bereits vorgefertigter Funktionen ist.
Ab "wann" eine Bibliothek ein "reiner Wrapper" ist würde ich z.B. so formulieren:
Ein "reiner Wrapper" ermöglicht das Nutzen von Funktionen durch ein anderes Ziel (Ziel wäre hierbei z.B. XProfan) als ursprünglich angedacht und bietet ausser einer nötigen Schnittstelle zum Ziel im Verhältnis zu den gewrappten Funktionen keinen weiteren oder verhältnismässig geringen Sinn.
Deinen o.g. Quelltext im Initialposting würde ich z.B. als solch einen "reinen Wrapper" bezeichnen.
PS: Wrapper hat (leider) wenig mit Wopper zu tun! 
H B., 04.04.2008 17:41: Ja, IF magst ja wohl Recht haben.
Kommt immer darauf an, wie man es sieht.
War ja nur ein guter Rat, da manche aus der PB - Gemeinde
leider etwas zu genau sind und nur auf sowas warten.
Dies ist die Offlinevariante vom Thread [DLL erstellen und weitergeben].
©2006 XProfan.Com