Just a follow up, for those interested. I tried to find another clever way to trick Windows into doing my bidding,
but I failed.
Looks like best way around console in Windows is the _tWinMain option, as already told to me.
i.e.
#ifdef _WIN32
#include <windows.h>
#include <tchar.h>
#endif
#ifdef _WIN32
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
#else
int main(int argc, char *argv[])
#endif
Though you also need to modify your call to the framework, for example you could do the following:
#ifdef _WIN32
//
// I'm being lazy and not reading/converting lpCmdLine
// into argv, i.e. parsing the LPSTR, to get argc and
// making sure that the pointer to the string is what
// argv expects, but
// a fuller expansion should, of course.
//
// You could use the Windows APIs, GetCommandLine() and/or
// GetCommandLineW() and/or CommandLineToArgvW(), but
// then you are using kernel32.lib and once
// again creating a dependency.
//
int argc = 0;
char **argv = NULL;
framework.open_framework(argc, argv);
#else
framework.open_framework(argc, argv);
#endif
The other method of using ShowWindow, etc. to hide the console, requires a change to the linker as well, as it wants the correct libraries.
As I am trying to avoid any Windows dependencies, I prefer the _tWinMain option instead. I found that while it needs the header files, it doesn’t need any linker changes (i.e. the linker doesn’t complain.) So it seems the most headache free route, and one with the least dependencies, and smaller code size since one less lib to link in.
I scoured my Windows Visual Studio documentation, trying to find a different route but came up empty.
There is a way to fool the linker, so that the console won’t appear. It’s used for ridding one of the console, when doing Windows Forms based applications. But that method, while ridding me of the console, also prevented Panda 3D from continuing execution. I tried several combinations and variations but Windows is stubborn, it wants that console. 
Second, I tried to intercept stdout messages in order to prevent the need for the console (as it only appears, apparently, because of stdout messages generated by Panda3D. Unfortunately, while I can reroute stdout/stderr within my program to a logfile I create, I cannot force this outside the scope of my program. In other words, I can’t force it for Panda3D. And it turns out the Windows documentation is actually clear about this point – i.e. redirecting stdout and like streams – they won’t let you. They say, point blank, that it is OS behavior to route to console and you cannot override (redirect) it, at least outside one’s own program.
However, I haven’t compiled the Panda3D source yet…no need yet… so I may try rerouting stdout within Panda3D (modding it, I mean, to use a logfile and not stdout) and see if the console goes away in Windows. How this might play out in other OS’s, I don’t know. Right now, I’m just working with Windows.
Again, thanks for the help. I appreciate it. It’s always the little things that turn out to be the most irritating on a project, and not the glamour stuff like renderers, and so forth.
Best,