Edit: Looking through it all since the file is locked it is likely working right, try building in debug and see if when you attach VS to Rainmeter if it says symbols have been loaded when you add a breakpoint. If I had to guess you are copying the wrong .dll that is before it was dllexported (Dont worry I do it all the time). Try either copying the .dll found somewhere else in your build directory or using my postbuild stuff I posted down below and see if that works.
Also you are free to try any of my plugins and see if they work if the above does not help, quickest way to force a log output out of one would be to load GPMDPPlugin into a measure with options defined and it should yell at you. (My apologies for the horrible layout of the code in advance)
https://github.com/tjhrulz/GPMDP-Plugin
Sorry I just showed up so if I covered something someone else has my bad, how are you debugging it? Remember you will need to copy the plugin to the %appdata%/Rainmeter/plugins folder. (I really need to get around to making a video series on how to best get started building plugins)
Most of the time when I am debugging I like to have visual studio attached so I can go line by line in my plugin. So typically I will have Visual Studio start Rainmeter for me. For C# you can do this by going to under your toolbar Project>Properties>Debug>Start External Program and enter the path to Rainmeter.
I also like to have a post build event to taskkill Rainmeter, export the .DLL for me, and the copy it to the Rainmeter plugins folder.
The one I use on every project is
Code: Select all
taskkill /f /fi "imagename eq Rainmeter.exe"
"$(SolutionDir)API\DllExporter.exe" "$(ConfigurationName)" "$(PlatformName)" "$(TargetDir)\" "$(TargetFileName)"
xcopy "$(TargetDir)$(TargetFileName)" "%appdata%\Rainmeter\Plugins" /Y
That will kill rainmeter but not error if it is not running and will copy and overwrite. You may need to tweak some of it if your project layout is different but if you are using the empty one it will be the same.
If you set it up like that then you can just build in debug, set a breakpoint, hit run, and be good to go and hit that point. Then there is no need to put a API log in there to test if it is running.
Oh also dont forget you need to load a skin that has a measure for your plugin, something like this would work fine and display the string value of the measure for you too. Just change out Plugin=NAMEOFDLLGOESHERE to whatever the name of the .dll file you export is (So the empty plugin would be PluginEmpty)
Code: Select all
[Rainmeter]
Update=1000
BackgroundMode=2
SolidColor=255, 255, 255, 255
[TestMeasure]
Measure=Plugin
Plugin=NAMEOFDLLGOESHERE
[TestMeter]
Meter=String
MeasureName=TestMeasure
X=0
Y=0
W=200