13.02.2012 9:45, Alf P. Steinbach пишет:
I first started with a Windows message box program and installing an IDE. I'm now using the VisualD plug-in with the Visual Studio 10 Shell, after battling a bit with installation of service pack 1 for Visual Studio. VisualD works, sort of, except the devs forgot that the resource compiler needs an INCLUDE variable so that it finds <windows.h>, so, silly as it is, the VisualD plugin can't be used directly as-is to create a modern look and feel Windows program. I solved it by running Visual Studio from the command line.

Anyway, I haven't yet started delving into the language documentation or any tutorials, just used gut-feeling, so I'd appreciate discussion of how to make this my first D console program less non-idiomatic <g>:


<code>
import std.stdio;
import std.ascii;
import std.string; // chop

//import core.sys.windows.unicode_based_api; <-- DOES NOT WORK.

char lastCh( string s )
{
return (s.length == 0? '\0' : s[s.length - 1]);
}

void main()
{
char[] buf;

writeln( "module core.sys.windows.unicode_api;" );
writeln( "import core.sys.windows.windows;" );
while( stdin.readln( buf ) )
{
string identifier;
bool inIdentifier = false;

foreach( char c; buf )
{
if( isAlpha( c ) )
{
if( !inIdentifier ) { identifier = ""; }
identifier ~= c;
inIdentifier = true;
}
else if( c == '_' || isDigit( c ) )
{
if( inIdentifier )
{
identifier ~= c;
}
}
else
{
inIdentifier = false;
if( isWhite( c ) )
{
// Ignore.
}
else
{
if( c == '(' && lastCh( identifier ) == 'W' )
{
immutable string name = chop( identifier ); // removes last char
writeln( "alias ", identifier, " ", name, ";" );
}
identifier = "";
}
}
}
}
}
</code>

The problem is, I can't manage to build the generated module.

The compiler is protesting something about the module being in a source code file that it can't read.

E.g. with "import unicode_based_api;" it exclaims,

<eror>
Error 1 Error: module unicode_based_api is in file 'unicode_based_api.d' which cannot be read d:\winfolders\alf\my documents\visual studio 2010\Projects\GenWinFuncAliases\GenWinFuncAliases\main.d 5
</eror>

?


Cheers,

- Alf

What is "unicode_based_api" file? I don't see it in core.sys.windows:
http://github.com/D-Programming-Language/druntime/tree/master/src/core/sys/windows

Reply via email to