ShellExecute

doob doobnet at gmail.com
Mon Feb 11 14:10:37 PST 2008


Sergey Gromov wrote:
> Serj Makaroff <serj-makaroff at yandex.ru> wrote:
>> Thank you! It's work.
>>
>> But why ShellExecute() doesn't work and what is the difference between
>> ShellExecuteA() and ShellExecuteW()?
> 
> There is no such Windows function like ShellExecute().  There is 
> ShellExecuteA() which accepts ASCII (CHAR/CHAR*) parameters and returns 
> compatible results, and ShellExecuteW() which accepts Unicode 
> (WCHAR/WCHAR*) parameters and returns accordingly.  The ShellExecute is 
> a macro defined in windows.h for C preprocessor, there is no such symbol 
> in the OS.  This macro expands to either of the former functions 
> depending on whether the _UNICODE macro is defined.  This holds true for 
> most of Windows API.
> 
> This reminds me: why all the standard D headers declare Windows 
> functions as
> 
> extern(Windows) export void SomeApiFunction() ?
> 
> What's the use for export attribute ?
> 

 From the language specification: "Export means that any code outside 
the executable can access the member. Export is analogous to exporting 
definitions from a DLL."

Tango doesn't use export with win api functions


More information about the Digitalmars-d-learn mailing list