Given below code: module testWin32Process;
import win32.windows;//get from:http://www.dsource.org/projects/bindings/wiki/WindowsApi import std.string; import std.conv; import std.stdio; import core.stdc.stdlib; string startupProcess() { STARTUPINFO si; si.cb=si.sizeof; PROCESS_INFORMATION pi; char* szCommandLine=cast(char*)toStringz("cmd"/*"notepad testWin32Process.d"*/); si.dwFlags=STARTF_USESHOWWINDOW; si.wShowWindow=true; int bRet=CreateProcess( null, szCommandLine, null, null, false, CREATE_NEW_CONSOLE, null, null, &si, &pi); if(bRet) { CloseHandle(pi.hThread); return std.string.format("New process ID:%d\n" "Host process ID:%d\n", pi.dwProcessId, pi.dwThreadId); } else { return "Do not know what happend.";//just want to check } } int main(string[] args) { writefln("%s\n",toStringz(startupProcess)); // prints blank!!! MessageBox(null,toStringz(startupProcess),toStringz("result?"),0);//prints contents as expected!! system("pause"); return 0; } As commented,were I use writefln(...),it prints blank;were I use MessageBox,it prints well as expected: New Process ID:2216 Host Process ID:2456 Could anybody here figure me out what the problem is?Thanks in advance. Regards, Sam
