Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

22.10.2007, 17:15

SendMessage in Funktion gepackt | Welche Lizenz?

Also ... da viele Anfänger Probleme haben die Funktionen für Fenster und Controls der WinAPI in Klassen zu kapseln, hab ich das mal in einer Library getan. Der Code wird demnächst bei sourceforge.net einzublicken sein ... jetzt will ich das ganze natürlich möglichst komfortabel nutzbar machen :-P
Deshalb will ich es direkt so machen, dass man den Zieltyp von send_message als Templateparameter angeben kann.

(1) SendMessage C++-Style => Wie würdet ihr es machen?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
// r = Return Value; w = WPARAM, l = LPARAM

template<typename r, typename w, typename l>
r   send_message(UINT msg, w const& wParam, l const& lParam) const 
{ return static_cast<r>(::SendMessage(m_hWnd, msg, reinterpret_cast<WPARAM>(wParam), reinterpret_cast<LPARAM>(lParam))); }

template<typename r, typename w>
r   send_message(UINT msg, w const& wParam) const 
{ return static_cast<r>(::SendMessage(m_hWnd, msg, reinterpret_cast<WPARAM>(wParam), 0)); }

template<typename r>
r   send_message(UINT msg) const 
{ return static_cast<r>(::SendMessage(m_hWnd, msg, 0, 0)); }
oder wie würdet ihr das machen? So bekomme ich natürlich Fehler ... Jemand ne Idee wie ich das schön lösen könnte? Achja ... natürlich gehen Default-Parameter in diesem Fall bei templates nicht :P
const-Ref geht hierbei ja nicht, da die an SendMessage übergebenen Parameter ja evtl. verändert werden. Wobei dann wird mit Zeigern gearbeitet ... hmm ...

(2) OpenSource-Lizenzen:
Welche Lizenzen gibt es/sind zu empfehlen? Ich würde dabei auf eigtl. so ziemlich alle Recht verzichten, solange ICH die Bibliothek für MEINE kommerziellen Projekte nutzen kann, ohne den Quellcode freigeben zu müssen und ANDERE die Bibliothek nur in OpenSource-Projekten nutzen dürfen bzw. sie ansonsten mit mir Absprache halte müssen.

Mit freundlichen Grüßen
Deviloper

Bearbeitung
(1) Formatierung des Beispielcodes an Formatierung des Forums angepasst.
(2) FEHLER: const-Ref-Val Übergabe nicht möglich.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

22.10.2007, 18:15

Re: SendMessage in Funktion gepackt | Welche Lizenz?

Zitat von »"Deviloper"«



(2) OpenSource-Lizenzen:
Welche Lizenzen gibt es/sind zu empfehlen? Ich würde dabei auf eigtl. so ziemlich alle Recht verzichten, solange ICH die Bibliothek für MEINE kommerziellen Projekte nutzen kann,


Du bist nicht an das gebunden was Du von anderen verlangst. Anders ausgedrückt, wenn Du die Bibliothek an 10 Leute rausgibst, kannst Du es theoretisch unter 10 verschiedenen Lizenzen machen und bist selber nach gar keiner von den 10 beschränkt.


Zitat

ANDERE die Bibliothek nur in OpenSource-Projekten nutzen dürfen bzw. sie ansonsten mit mir Absprache halte müssen.


Da würde ich GPL oder LGPL nehmen. Der Unterschied ist dass bei LGPL nur Änderungen an der Bibliothek selber beschränkt sind, aber nicht das Hauptprojekt, von dem die Bibliothek benutzt wird.
"Games are algorithmic entertainment."

3

23.10.2007, 14:45

Zitat

Da würde ich GPL oder LGPL nehmen. Der Unterschied ist dass bei LGPL nur Änderungen an der Bibliothek selber beschränkt sind, aber nicht das Hauptprojekt, von dem die Bibliothek benutzt wird.
Hmm ja ok aber wenn jetzt einer z.B. eine zusätzliche DLL anlegt, die den Funktionsumfang von der von mir ausgelieferten DLL erweitert, wäre das dann ein Fall wo man den Code offen legen muss oder nicht? :-P
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

23.10.2007, 17:22

Wenn er sie nicht statusch einbindet, nein(AFAIK).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

23.10.2007, 18:46

Wie willst du Templates in eine DLL packen?
:arrow: Geht gar nicht!

6

23.10.2007, 21:37

@David: ? Sind doch die Header dabei :P Dann geht das ohne Probleme :P Kommt mir dabei eh eher aufs Prinzip an.
@Nox: Hmm das wäre natürlich doof ... also wäre die GPL die richtige Wahl?
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

23.10.2007, 22:14

Zitat von »"Deviloper"«

@David: ? Sind doch die Header dabei :P Dann geht das ohne Probleme :P

Dann steht in der DLL aber nix drin.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

23.10.2007, 23:36

Also bei der LPGL muss man den Code nur offenlegen, wenn die Bibliothek, die unter der LPGL lizensiert ist, statisch eingebunden wird (weil das Projekt dann eine Erweiterung der Bibliothek darstellt), wenn man sie dynamisch einbindet, muss man nichts offenlegen. Wie es mit der GPL ist, weiß ich nicht, würde aber schätzen, dass man dann in beiden Fällen offenlegen muss.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

9

23.10.2007, 23:49

In dem Fall (Bibliotek ist in eine DLL verpackt) musst Du den Code der DLL veröffentlichen. Wenn Du also z.B. eine Funktion änderst, werden andere Deine Änderung nutzen können.
"Games are algorithmic entertainment."

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

24.10.2007, 14:08

Auch in dem Fall dass die eigene DLL die unter LGPL lizensierte DLL dynamisch einbindet?(kA ob das überhaupt möglich ist :oops: )
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige