D - winsamp.d
- imr1984 <imr1984_member pathlink.com> Jan 13 2004
- "Walter" <walter digitalmars.com> Jan 13 2004
- "Matthew" <matthew.hat stlsoft.dot.org> Jan 13 2004
- "Walter" <walter digitalmars.com> Jan 14 2004
- "Matthew" <matthew.hat stlsoft.dot.org> Jan 14 2004
- imr1984 <imr1984_member pathlink.com> Jan 14 2004
- "Walter" <walter digitalmars.com> Jan 14 2004
- J Anderson <REMOVEanderson badmama.com.au> Jan 14 2004
- J C Calvarese <jcc7 cox.net> Jan 14 2004
- J Anderson <REMOVEanderson badmama.com.au> Jan 14 2004
- "Sean L. Palmer" <palmer.sean verizon.net> Jan 15 2004
Can someone explain to me why Win32 programs need these 5 externs? Cant they be
put into the std.c.windows.windows import file? Also, what is the difference
between extern and export?, because they both seem to be used to import
functions from a dll/lib. Sorry for the loads of the questions but the spec file
isnt that clear.
extern (C) void gc_init();
extern (C) void gc_term();
extern (C) void _minit();
extern (C) void _moduleCtor();
extern (C) void _moduleUnitTests();
extern (Windows)
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
..
Jan 13 2004
extern (C) sets the calling convention. export sets the special protocall used to export functions from a DLL. They are not in their own import because they are internal names and may change. "imr1984" <imr1984_member pathlink.com> wrote in message news:bu1hbv$m74$1 digitaldaemon.com...Can someone explain to me why Win32 programs need these 5 externs? Cant
put into the std.c.windows.windows import file? Also, what is the
between extern and export?, because they both seem to be used to import functions from a dll/lib. Sorry for the loads of the questions but the
isnt that clear. extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ..
Jan 13 2004
extern (C) sets the calling convention. export sets the special protocall used to export functions from a DLL. They are not in their own import because they are internal names and may change.
Can we still export functions marked extern(C) but not marked export via a .DEF file, or other means?"imr1984" <imr1984_member pathlink.com> wrote in message news:bu1hbv$m74$1 digitaldaemon.com...Can someone explain to me why Win32 programs need these 5 externs? Cant
put into the std.c.windows.windows import file? Also, what is the
between extern and export?, because they both seem to be used to import functions from a dll/lib. Sorry for the loads of the questions but the
isnt that clear. extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ..
Jan 13 2004
"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:bu2i9h$2cn0$1 digitaldaemon.com...extern (C) sets the calling convention. export sets the special
used to export functions from a DLL. They are not in their own import because they are internal names and may change.
Can we still export functions marked extern(C) but not marked export via a .DEF file, or other means?
The same rules apply as for C. After all, a .DEF file is a command to the linker, not the compiler, and the linker knows nothing about languages.
Jan 14 2004
"Walter" <walter digitalmars.com> wrote in message news:bu2v2k$1r8$1 digitaldaemon.com..."Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:bu2i9h$2cn0$1 digitaldaemon.com...extern (C) sets the calling convention. export sets the special
used to export functions from a DLL. They are not in their own import because they are internal names and may change.
Can we still export functions marked extern(C) but not marked export via
.DEF file, or other means?
The same rules apply as for C. After all, a .DEF file is a command to the linker, not the compiler, and the linker knows nothing about languages.
Thought so. Just checking. :)
Jan 14 2004
so are those 5 externs like prototypes to tell the compiler to reference the D library? If so why cant they be put into the windows.d import file? In article <bu1u4s$1brd$1 digitaldaemon.com>, Walter says...extern (C) sets the calling convention. export sets the special protocall used to export functions from a DLL. They are not in their own import because they are internal names and may change. "imr1984" <imr1984_member pathlink.com> wrote in message news:bu1hbv$m74$1 digitaldaemon.com...Can someone explain to me why Win32 programs need these 5 externs? Cant
put into the std.c.windows.windows import file? Also, what is the
between extern and export?, because they both seem to be used to import functions from a dll/lib. Sorry for the loads of the questions but the
isnt that clear. extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ..
Jan 14 2004
"imr1984" <imr1984_member pathlink.com> wrote in message news:bu3lbl$15fl$1 digitaldaemon.com...so are those 5 externs like prototypes to tell the compiler to reference
library?
Yes.If so why cant they be put into the windows.d import file?
I want to keep windows.d an analogue of windows.h
Jan 14 2004
Walter wrote:"imr1984" <imr1984_member pathlink.com> wrote in message news:bu3lbl$15fl$1 digitaldaemon.com...so are those 5 externs like prototypes to tell the compiler to reference
library?
Yes.If so why cant they be put into the windows.d import file?
I want to keep windows.d an analogue of windows.h
stuff for windows?
Jan 14 2004
J Anderson wrote:Walter wrote:"imr1984" <imr1984_member pathlink.com> wrote in message news:bu3lbl$15fl$1 digitaldaemon.com...so are those 5 externs like prototypes to tell the compiler to reference
the Dlibrary?
Yes.If so why cant they be put into the windows.d import file?
I want to keep windows.d an analogue of windows.h
stuff for windows?
Are you thinking of something like this? // ----------------------------------- // module std.windows.windows; extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); // ----------------------------------- // Seems like a good idea to me. I like to keep the mysterious stuff underneath the hood. I prefer one line with "import std.windows.windows;" to five cryptic lines that make it easy for me to mess up something. -- Justin http://jcc_7.tripod.com/d/
Jan 14 2004
J C Calvarese wrote:J Anderson wrote:Walter wrote:"imr1984" <imr1984_member pathlink.com> wrote in message news:bu3lbl$15fl$1 digitaldaemon.com...so are those 5 externs like prototypes to tell the compiler to reference
the Dlibrary?
Yes.If so why cant they be put into the windows.d import file?
I want to keep windows.d an analogue of windows.h
stuff for windows?
Are you thinking of something like this? // ----------------------------------- // module std.windows.windows; extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); // ----------------------------------- // Seems like a good idea to me. I like to keep the mysterious stuff underneath the hood. I prefer one line with "import std.windows.windows;" to five cryptic lines that make it easy for me to mess up something.
module std.d.windows; import std.c.windows; extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests();
Jan 14 2004
"J Anderson" <REMOVEanderson badmama.com.au> wrote in message news:bu4ne6$2t0a$1 digitaldaemon.com...J C Calvarese wrote:J Anderson wrote:Walter wrote:"imr1984" <imr1984_member pathlink.com> wrote in messageIf so why cant they be put into the windows.d import file?
I want to keep windows.d an analogue of windows.h
stuff for windows?
Are you thinking of something like this? // ----------------------------------- // module std.windows.windows; extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); // ----------------------------------- // Seems like a good idea to me. I like to keep the mysterious stuff underneath the hood. I prefer one line with "import std.windows.windows;" to five cryptic lines that make it easy for me to mess up something.
module std.d.windows; import std.c.windows; extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests();
Why has nobody suggested: extern (C) { void gc_init(); void gc_term(); void _minit(); void _moduleCtor(); void _moduleUnitTests(); } ? It seems C should allow something like this: void gc_init(), gc_term(), _minit(), _moduleCtor(),_moduleUnitTests(); But I don't think it does. ? Sean
Jan 15 2004









"Matthew" <matthew.hat stlsoft.dot.org> 