<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">&lt;begin code&gt;</font>
<br>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;ImageViewer.h&quot;</font>
<br>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &lt;qapplication.h&gt;</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">&nbsp; QApplication myapp(argc, argv);</font>
<br><font size=2 face="Courier New">&nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> ( argc &lt;= 1 )</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; </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">&nbsp; &nbsp; &nbsp; 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">&nbsp; &nbsp; &nbsp; QString title = &quot;Image Viewer: &quot;;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; title += &quot;No image loaded&quot;;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; mywidget-&gt;setCaption(title);</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; mywidget-&gt;loadFile( &quot;Resources/background.png&quot; );</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;setGeometry(50+(20), 50+(20), 256, 256); </font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; mywidget-&gt;setInitSize(); &nbsp;</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">&nbsp; &nbsp; &nbsp; mywidget-&gt;show();</font>
<br>
<br><font size=2 face="Courier New">&nbsp; &nbsp; } </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">&nbsp; &nbsp; &nbsp; </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&lt; argc; i++ )</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QString title = &quot;Image Viewer: &quot;;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title += argv[i];</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;setCaption(title);</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;loadFile( argv[i] );</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;setGeometry(50+(i*20), 50+(i*20), 1000, 1000); </font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;setInitSize(); &nbsp;</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">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mywidget-&gt;show();</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// handles shutdown of all windows</font>
<br><font size=2 face="Courier New">&nbsp; QObject::connect(qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit()));</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// &nbsp;myapp.setMainWidget( mywidget );</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// remember to show the widget</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// &nbsp;mywidget-&gt;show();</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </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">&nbsp; &nbsp; </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"> &lt;windows.h&gt;</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">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HINSTANCE hPrevInstance,</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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">&nbsp; </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argc;</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;retVal;</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">** &nbsp; &nbsp; &nbsp; argv;</font>
<br><font size=2 face="Courier New">&nbsp; </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">&nbsp; </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;j;</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </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">&nbsp; </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">&nbsp; argc = 1;</font>
<br><font size=2 face="Courier New">&nbsp; </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">&nbsp; </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New"> (i = 0; i &lt; strlen(lpCmdLine); i++)</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] == ' ' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> (lpCmdLine[i] == '\&quot;')</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != '\&quot;' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; pos++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argc++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; pos = 0;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">else</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != ' ' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; pos++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argc++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; pos = 0;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="Courier New">&nbsp; 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">&nbsp; 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">&nbsp; ::GetModuleFileName(0, argv[0],1024);</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">(j=1; j&lt;argc; j++)</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; 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">&nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; argv[argc] = 0;</font>
<br>
<br><font size=2 face="Courier New">&nbsp; argc = 1;</font>
<br><font size=2 face="Courier New">&nbsp; pos = 0;</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New"> (i = 0; i &lt; strlen(lpCmdLine); i++)</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] == ' ' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New"> (lpCmdLine[i] == '\&quot;')</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != '\&quot;' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; argv[argc][pos] = lpCmdLine[i];</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; pos++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argv[argc][pos] = '\0';</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argc++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; pos = 0;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">else</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">while</font><font size=2 face="Courier New"> (lpCmdLine[i] != ' ' &amp;&amp; i &lt; strlen(lpCmdLine))</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; argv[argc][pos] = lpCmdLine[i];</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; i++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; pos++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argv[argc][pos] = '\0';</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; argc++;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; pos = 0;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; argv[argc] = 0;</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// Initialize the processes and start the application.</font>
<br><font size=2 face="Courier New">&nbsp; retVal = MyMain(argc, argv);</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#008000 face="Courier New">// Delete arguments</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">(j=0; j&lt;argc; j++)</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; free(argv[j]);</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; free(argv);</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </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">&nbsp; </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">&lt;end code&gt;</font>