Help: running a method from the importing file's method "space"
Rowan
rowanreeve at gmail.com
Mon Apr 30 12:55:15 PDT 2012
On Monday, 30 April 2012 at 18:54:41 UTC, Era Scarecrow wrote:
> On Monday, 30 April 2012 at 18:50:24 UTC, Era Scarecrow wrote:
>> Add 'import test;' to your MyLib module.
>
> Although that seems like it's connecting a library to
> something it shouldn't... In which case perhaps a delegate
> passed to the library to call myProg? Doesn't seem right either.
>
> What is your library suppose to do? And why should it have to
> access something outside it's library set? (Unless test.d is
> part of the library)
I make this library to create a few classes for creating some
simple GUI components (window, buttons, text boxes, that's about
it) as a bit of a learning exercise, and for practical use.
"test.d" is not part of the library, it is just for testing the
library. What I could do that would definatly work is:
--------------
File "test.d":
--------------
import core.runtime;
import core.sys.windows.windows;
import MyLib;
pragma(lib, "MyLib.lib);
extern(Windows) {
WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine,
int CmdShow) {
MyLibInit(hInst, hPrevInst, CmdLine, CmdShow);
}
----ENDFILE----
So I can then just pass everything my lib requires to it and then
there is no need for progMain. I'm asking this question as with
QT's source, it uses WinMain:
https://qt.gitorious.org/qt/qt/blobs/HEAD/src/winmain/qtmain_win.cpp
80 /*
81 WinMain() - Initializes Windows and calls user's startup
function main().
82 NOTE: WinMain() won't be called if the application was
linked as a "console"
83 application.
84 */
85
86 #ifdef Q_OS_WINCE
87 int WINAPI WinMain(HINSTANCE instance, HINSTANCE prevInstance,
LPWSTR /*wCmdParam*/, int cmdShow)
Yet you can still use "main()" from your program and then link to
QT's dll and use its functionality. I know that is C++ but that's
where I'm comming from with this.
I think you are right and my library isn't supposed to try access
"test.d"'s methods, classes, etc. and be self contained. So
should I rather go with the WinMain in my main program then pass
the parameters to MyLib like I showed before the QT reference?
More information about the Digitalmars-d-learn
mailing list