Problem loading strings from c4d_strings.str
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/08/2011 at 11:32, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R12
Platform: Windows ;
Language(s) : C++ ;---------
Hi,
I'm afraid I'm missing something very obvious.
I'm trying to write my own command plugin and started using some of the SDK examples. But somehow, I can't get GeLoadString() to work. Using FileMon, it looks as if C4D is looking into the res subfolders of other plugins, but not into the res folder of mine. The icon loads fine, though.My folder structure:
plugins/ProWiz plugins/ProWiz/prowiz.cdl plugins/ProWiz/res plugins/ProWiz/res/c4d_symbols.h plugins/ProWiz/res/prowiz.tif plugins/ProWiz/res/c4d_symbols.h plugins/ProWiz/res/strings_us plugins/ProWiz/res/strings_us/c4d_strings.str
I have broken down the code to basically one GePrint(GeLoadString(PROWIZ_PLUGIN_NAME)), but it returns an empty string. I'd attach a zipped project directory, but it doesn't seem to be possible here. Still I can mail it to anybody willing to help.
Here are the contents of c4d_strings.str and c4d_symbols.h:
c4d_symbols.h:enum { // Strings PROWIZ_PLUGIN_NAME = 10000, // Plugin IDs ID_PROWIZ = 1027470, // Enum Terminator PROWIZ_DUMMY };
c4d_strings.str:
// English STRINGTABLE { // Strings PROWIZ_PLUGIN_NAME "ProWiz"; }
Too be honest, I'm feeling a bit dumb. Must be very obvious, what I'm missing... any help would be very much appreciated...
Best regards,
Andreas -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/08/2011 at 14:31, xxxxxxxx wrote:
If the icon loads correctly, Cinema is finding your resource folder okay.
I'm sure it's a mistake in your post here rather than in your project, but in your post what you show as c4d_symbols.h should be the strings in c4d_strings.str, and vice versa.
Can you show us your plugin registration function - the one you probably call RegisterProWiz() or something like that?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/08/2011 at 21:41, xxxxxxxx wrote:
Thanks for looking into it...
You are right (double checked it twice, as I was suspecting something like this), I mixed up c4d_strings and c4d_symbols in the post. Corrected in first post.
Here's my RegisterProWiz(void) :Bool RegisterProWiz(void) { GePrint("Registering ProWiz (ID: " + LongToString(ID_PROWIZ) + ")..."); GePrint("Name: " + GeLoadString(PROWIZ_PLUGIN_NAME)); return RegisterCommandPlugin(ID_PROWIZ, "ProWiz", 0, AutoBitmap("prowiz.tif"), "Description ProWiz", gNew ProWiz); }
The plugin registers fine. The output in console of "GePrint("Name: " + GeLoadString(PROWIZ_PLUGIN_NAME));" is a sole "Name: ".
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 16/08/2011 at 06:09, xxxxxxxx wrote:
Hm, not sure what's happening here. Just one question: you are definitely calling resource.Init() in the PluginMessage function?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 16/08/2011 at 13:36, xxxxxxxx wrote:
Oh my god... you are so right!!! I feel pretty stupid, now. The plugin I took as an example didn't have any ressource files. I totally overlooked the comment in main.cpp...
Thanks a lot for the quick and competent help,
Andreas -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 16/08/2011 at 23:33, xxxxxxxx wrote:
Heh, not that competent - I should have spotted that one earlier. It's an easy mistake to make when starting out. There's no need to feel stupid