<br><font size=1 face="Courier New">Hi Andy,</font>
<br>
<br><font size=1 face="Courier New">Thanks for your prompt reply. </font>
<br>
<br><font size=1 face="Courier New">I modified my main.cpp file based on the example you sent me. The resulting code is below. I am now getting strange compiler errors:</font>
<br>
<br><font size=1 face="Courier New">What am I missing? Sorry if this is not strictly a cmake question.</font>
<br>
<br><font size=1 face="Courier New">Nick</font>
<br>
<br>
<br><font size=1 face="Courier New">------ Build started: Project: viewer, Configuration: Release Win32 ------</font>
<br>
<br><font size=1 face="Courier New">Compiling...</font>
<br><font size=1 face="Courier New">main.cpp</font>
<br><font size=1 face="Courier New">C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(143) : warning C4091: 'typedef ' : ignored on left of 'unsigned char' when no variable is declared</font>
<br><font size=1 face="Courier New">C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(143) : error C2143: syntax error : missing ';' before 'constant'</font>
<br><font size=1 face="Courier New">C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(143) : fatal error C1075: end of file found before the left brace '{' at 'C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(30)' was matched</font>
<br>
<br>
<br>
<br><font size=2 color=blue face="Courier New"><begin code></font>
<br>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> "ImageViewer.h"</font>
<br>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> <qapplication.h></font>
<br>
<br>
<br><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> MyMain(</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> argc, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">* argv[])</font>
<br><font size=2 face="Courier New">{</font>
<br><font size=2 face="Courier New"> QApplication myapp(argc, argv);</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> ( argc <= 1 )</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// Create a window which looks after its own existance</font>
<br><font size=2 face="Courier New"> ImageViewer *mywidget = </font><font size=2 color=blue face="Courier New">new</font><font size=2 face="Courier New"> ImageViewer();</font>
<br><font size=2 face="Courier New"> QString title = "Image Viewer: ";</font>
<br><font size=2 face="Courier New"> title += "No image loaded";</font>
<br><font size=2 face="Courier New"> mywidget->setCaption(title);</font>
<br><font size=2 face="Courier New"> mywidget->loadFile( "Resources/background.png" );</font>
<br><font size=2 face="Courier New"> mywidget->setGeometry(50+(20), 50+(20), 256, 256); </font>
<br><font size=2 face="Courier New"> mywidget->setInitSize(); </font><font size=2 color=#008000 face="Courier New">// snaps the window to the size of the image</font>
<br><font size=2 face="Courier New"> mywidget->show();</font>
<br>
<br><font size=2 face="Courier New"> } </font><font size=2 color=blue face="Courier New">else</font><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">( </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> i=1; i< argc; i++ )</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> ImageViewer *mywidget = </font><font size=2 color=blue face="Courier New">new</font><font size=2 face="Courier New"> ImageViewer();</font>
<br><font size=2 face="Courier New"> QString title = "Image Viewer: ";</font>
<br><font size=2 face="Courier New"> title += argv[i];</font>
<br><font size=2 face="Courier New"> mywidget->setCaption(title);</font>
<br><font size=2 face="Courier New"> mywidget->loadFile( argv[i] );</font>
<br><font size=2 face="Courier New"> mywidget->setGeometry(50+(i*20), 50+(i*20), 1000, 1000); </font>
<br><font size=2 face="Courier New"> mywidget->setInitSize(); </font><font size=2 color=#008000 face="Courier New">// snaps the window to the size of the image</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New"> mywidget->show();</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> }</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// handles shutdown of all windows</font>
<br><font size=2 face="Courier New"> QObject::connect(qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit()));</font>
<br>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// myapp.setMainWidget( mywidget );</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// remember to show the widget</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// mywidget->show();</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">return</font><font size=2 face="Courier New"> myapp.exec();</font>
<br>
<br><font size=2 face="Courier New">}</font>
<br>
<br>
<br><font size=2 color=#008000 face="Courier New">// Now we need to set up the bits for the windows OS</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 color=blue face="Courier New">#ifdef</font><font size=2 face="Courier New"> _WIN32</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> <windows.h></font>
<br>
<br><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">__stdcall</font><font size=2 face="Courier New"> WinMain(HINSTANCE hInstance, </font>
<br><font size=2 face="Courier New"> HINSTANCE hPrevInstance,</font>
<br><font size=2 face="Courier New"> LPSTR lpCmdLine, </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> nShowCmd)</font>
<br><font size=2 face="Courier New">{</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> argc;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> retVal;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">** argv;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">unsigned</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> i;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> j;</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// parse a few of the command line arguments</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// a space delimites an argument except when it is inside a quote</font>
<br>
<br><font size=2 face="Courier New"> argc = 1;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New"> (i = 0; i < strlen(lpCmdLine); i++)</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] == ' ' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> (lpCmdLine[i] == '\"')</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != '\"' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> pos++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argc++;</font>
<br><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">else</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != ' ' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> pos++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argc++;</font>
<br><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> }</font>
<br>
<br><font size=2 face="Courier New"> argv = (</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">**)malloc(</font><font size=2 color=blue face="Courier New">sizeof</font><font size=2 face="Courier New">(</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">*)* (argc+1));</font>
<br>
<br><font size=2 face="Courier New"> argv[0] = (</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">*)malloc(1024);</font>
<br><font size=2 face="Courier New"> ::GetModuleFileName(0, argv[0],1024);</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">(j=1; j<argc; j++)</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> argv[j] = (</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">*)malloc(strlen(lpCmdLine)+10);</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argv[argc] = 0;</font>
<br>
<br><font size=2 face="Courier New"> argc = 1;</font>
<br><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New"> (i = 0; i < strlen(lpCmdLine); i++)</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] == ' ' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> (lpCmdLine[i] == '\"')</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != '\"' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> argv[argc][pos] = lpCmdLine[i];</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> pos++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argv[argc][pos] = '\0';</font>
<br><font size=2 face="Courier New"> argc++;</font>
<br><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">else</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != ' ' && i < strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> argv[argc][pos] = lpCmdLine[i];</font>
<br><font size=2 face="Courier New"> i++;</font>
<br><font size=2 face="Courier New"> pos++;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argv[argc][pos] = '\0';</font>
<br><font size=2 face="Courier New"> argc++;</font>
<br><font size=2 face="Courier New"> pos = 0;</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> argv[argc] = 0;</font>
<br>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// Initialize the processes and start the application.</font>
<br><font size=2 face="Courier New"> retVal = MyMain(argc, argv);</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=#008000 face="Courier New">// Delete arguments</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">(j=0; j<argc; j++)</font>
<br><font size=2 face="Courier New"> {</font>
<br><font size=2 face="Courier New"> free(argv[j]);</font>
<br><font size=2 face="Courier New"> }</font>
<br><font size=2 face="Courier New"> free(argv);</font>
<br>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">return</font><font size=2 face="Courier New"> retVal;;</font>
<br><font size=2 face="Courier New">}</font>
<br><font size=2 color=blue face="Courier New">#else</font>
<br><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> main(</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> argc, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New"> *argv[])</font>
<br><font size=2 face="Courier New">{</font>
<br><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">return</font><font size=2 face="Courier New"> MyMain(argc, argv);</font>
<br><font size=2 face="Courier New">}</font>
<br><font size=2 color=blue face="Courier New">#endif</font>
<br>
<br><font size=2 face="sans-serif"><end code></font>