Seite 1 von 1

Purebasic und Rainmeter

Verfasst: 25.02.2014 21:39
von Joebo2572
Hallo,

gibt es eine Möglichkeit plugins für Rainmeter in Purebasic zu schreiben, bzw hat schon jemand ein leeres Gerüst für sowas?

Re: Purebasic und Rainmeter

Verfasst: 26.02.2014 06:30
von TroaX
Ich habe mir mal kurz die API Doku angesehen. Vorgesehen sind grundsätzlich Plugins mit C# oder C++. Näher kam ich auch nicht ran, da ich mit dem Handy gerade keine Projektfiles bzw. Das SDK öffnen kann. Aber finde es interessant, das die C++ API nur aus Funktionen zu bestehen, wodurch im Grunde C zum schreiben ausreicht. Die frage ist dann nur, ob externe Libs eingebunden werden oder ob sie als Source vorliegen. Letzteres wäre fummelig, da diese Sources erst mit nem C++ Compiler in Libs compiliert werden müssen. Es sei denn sie lassen sich in PB umsetzen, was als C++ sehr schwierig wird.

Re: Purebasic und Rainmeter

Verfasst: 27.02.2014 19:16
von Joebo2572
Danke für die Antwort...
Hab mir mal VSExpress runtergeladen und den Beispielcode angefügt:

Code: Alles auswählen

#include <Windows.h>
#include "../../API/RainmeterAPI.h"

// Overview: This is a blank canvas on which to build your plugin.

// Note: GetString and ExecuteBang have been commented out. If you need
// GetString and/or ExecuteBang and you have read what they are used for
// from the SDK docs, uncomment the function(s). Otherwise leave them
// commented out (or get rid of them)!

struct Measure
{
	Measure() {}
};

PLUGIN_EXPORT void Initialize(void** data, void* rm)
{
	Measure* measure = new Measure;
	*data = measure;
}

PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	Measure* measure = (Measure*)data;
}

PLUGIN_EXPORT double Update(void* data)
{
	Measure* measure = (Measure*)data;
	return 0.0;
}

//PLUGIN_EXPORT LPCWSTR GetString(void* data)
//{
//	Measure* measure = (Measure*)data;
//	return L"";
//}

//PLUGIN_EXPORT void ExecuteBang(void* data, LPCWSTR args)
//{
//	Measure* measure = (Measure*)data;
//}

PLUGIN_EXPORT void Finalize(void* data)
{
	Measure* measure = (Measure*)data;
	delete measure;
}

Das ergibt ein leeres Plugin. Für Samurize gibt's ein Plugin Skelett für Purebasic. Eigentlich müsste es doch ähnlich laufen, oder?

Grüße, Jörn