Thinking Out Loud

October 11, 2005

Organization

Filed under: wxWidgets, Tools

Two milestones were met today, things that had to be done even though they weren’t written on my 50+ item to-do list for this project.

First, I organized my code finally. The compiled executables land in the folders wd_msw and vc_msw for wxDev-C++ and Visual C++ 2005 Express beta respectively.


+---doc
+---images
+---include
+---src
+---tests
+---vc_msw
| \---residue
+---wd_msw
| \---obj
\---wxg

My new folder structure supports using the same sources for both wxDev-C++ and Microsoft VC++ 2005 Express. Both compilers and environments use the same source and include folders, despite their vastly different project file format.

Secondly, I finally got my source code to compile on the Microsoft VC++ 2005 Express beta product. The usual suggestion is to copy an existing sample and change the configuration from the GUI. I did in fact use an exising sample as a starting point, but I was having very little luck getting it to compile, plus I was trying to match the paths to my shiny new code organization folder structure, something VC++ Express was loathe to permit. The only thing that worked was opening up that sample vcproj in a text editor and cutting through the project file (flashcard.vcproj) like a madman. The build options are vastly easier to edit in a text editor than in VC++ Express itself.

I blew away all the Configurations except for Release|Win32, and likewise for FileConfigurations. This will undoubtably limit some functionality, it is much easier to edit a 150 line file than to deal with a jillion different build options. I intend to develop in wx-Devcpp and do the final releases in VC++ Express. I compiled wxWidgets 2.6.2 in release mode so I have to do the same for my application.

After removing the sample files from the project and adding the real ones, VC++ Express listed the source files outside of the Source Files list and VC++ compiler was complaining it couldn’t find the header files. I carefully closed VC++ Express and reopened the vcproj file in the text editor and sure enough, the File elements were not inside the Filter element named “Source Files.” So I promptly copied and pasted the text to fix that problem, and suddenly VC++ Express compiled my program into a shiny new executable.

Microsoft says the ProjectGUID property is used by .NET apps, which I don’t care about currently, so I didn’t take care to make it unique.

I found nothing of value in the sample’s solution (.sln) file. This gets created automatically, so it is not needed.

Bottom line is that the mingw compiler (currently required by wxDev-C++) produces a 6 meg executable and the Microsoft one produces a 2 meg executable. For this reason it was worth the effort.

This is what my Visual C++ Express project file looks like:


<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="flashcard"
ProjectGUID="{9111E5D3-29DD-4A71-98AA-A820A318CA99}"
RootNamespace="flashcard"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory="."
IntermediateDirectory=".\residue"
ConfigurationType="1"
InheritedPropertySheets="UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="WIN32,__WXMSW__,_WINDOWS,NOPCH"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\residue/flashcard.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/EHsc "
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="$(WXWIN)\include,$(WXWIN)\lib\vc_lib\msw,.,$(WXWIN)\samples,..\include"
PreprocessorDefinitions="WIN32;__WXMSW__;_WINDOWS;NOPCH"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
PrecompiledHeaderFile=".\residue/flashcard.pch"
AssemblerListingLocation=".\residue/"
ObjectFile=".\residue/"
ProgramDataBaseFileName=".\residue\flashcard.pdb"
WarningLevel="4"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="__WXMSW__,_WINDOWS,NOPCH"
Culture="1033"
AdditionalIncludeDirectories="$(WXWIN)\include,$(WXWIN)\lib\vc_lib\msw,.,$(WXWIN)\samples"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="wxmsw26_core.lib wxmsw26_adv.lib wxmsw26_xrc.lib wxmsw26_html.lib wxbase26.lib wxbase26_xml.lib wxexpat.lib wxpng.lib wxjpeg.lib wxtiff.lib wxzlib.lib wxregex.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib odbc32.lib"
OutputFile=".\CardGriLa.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="$(WXWIN)\lib\vc_lib"
ProgramDatabaseFile=".\residue/cardgrila.pdb"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\residue/cardgrila.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
>
<File
RelativePath="..\src\flashcard-res.cpp"
>
</File>
<File
RelativePath="..\src\frmLearn.cpp"
>
</File>
<File
RelativePath="..\src\main.cpp"
>
</File>
<File
RelativePath="..\src\ryanssplit.cpp"
>
</File>
<File
RelativePath="..\src\tcard.cpp"
>
</File>
<File
RelativePath="..\src\tcardlist.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

October 10, 2005

What’s in your lib?

Filed under: wxWidgets, Tools


for %f in (C:\WX262\lib\vc_lib\*.lib) do echo "%f" contains the following object files >>xyztest.txt & lib %f /list /verbose /nologo >>xyztest.txt & echo.>>xyztest.txt

This command creates the following contents for xyztest.txt on my system. Posted for my own reference.


"C:\WX262\lib\vc_lib\wxbase26.lib" contains the following object files
.\vc_msw\base\appbase.obj
.\vc_msw\base\archive.obj
.\vc_msw\base\clntdata.obj
.\vc_msw\base\cmdline.obj
.\vc_msw\base\config.obj
.\vc_msw\base\datetime.obj
.\vc_msw\base\datstrm.obj
.\vc_msw\base\dircmn.obj
.\vc_msw\base\dynarray.obj
.\vc_msw\base\dynlib.obj
.\vc_msw\base\dynload.obj
.\vc_msw\base\encconv.obj
.\vc_msw\base\event.obj
.\vc_msw\base\extended.obj
.\vc_msw\base\ffile.obj
.\vc_msw\base\file.obj
.\vc_msw\base\fileconf.obj
.\vc_msw\base\filefn.obj
.\vc_msw\base\filename.obj
.\vc_msw\base\filesys.obj
.\vc_msw\base\fmapbase.obj
.\vc_msw\base\fs_mem.obj
.\vc_msw\base\fs_zip.obj
.\vc_msw\base\hash.obj
.\vc_msw\base\hashmap.obj
.\vc_msw\base\init.obj
.\vc_msw\base\intl.obj
.\vc_msw\base\ipcbase.obj
.\vc_msw\base\list.obj
.\vc_msw\base\log.obj
.\vc_msw\base\longlong.obj
.\vc_msw\base\memory.obj
.\vc_msw\base\mimecmn.obj
.\vc_msw\base\module.obj
.\vc_msw\base\msgout.obj
.\vc_msw\base\mstream.obj
.\vc_msw\base\object.obj
.\vc_msw\base\process.obj
.\vc_msw\base\regex.obj
.\vc_msw\base\sstream.obj
.\vc_msw\base\stdpbase.obj
.\vc_msw\base\stopwatch.obj
.\vc_msw\base\strconv.obj
.\vc_msw\base\stream.obj
.\vc_msw\base\string.obj
.\vc_msw\base\sysopt.obj
.\vc_msw\base\textbuf.obj
.\vc_msw\base\textfile.obj
.\vc_msw\base\tokenzr.obj
.\vc_msw\base\txtstrm.obj
.\vc_msw\base\uri.obj
.\vc_msw\base\utilscmn.obj
.\vc_msw\base\variant.obj
.\vc_msw\base\wfstream.obj
.\vc_msw\base\wxchar.obj
.\vc_msw\base\xti.obj
.\vc_msw\base\xtistrm.obj
.\vc_msw\base\zipstrm.obj
.\vc_msw\base\zstream.obj
.\vc_msw\base\basemsw.obj
.\vc_msw\base\crashrpt.obj
.\vc_msw\base\dde.obj
.\vc_msw\base\debughlp.obj
.\vc_msw\base\dir.obj
.\vc_msw\base\dlmsw.obj
.\vc_msw\base\dummy.obj
.\vc_msw\base\main.obj
.\vc_msw\base\mimetype.obj
.\vc_msw\base\mslu.obj
.\vc_msw\base\regconf.obj
.\vc_msw\base\registry.obj
.\vc_msw\base\snglinst.obj
.\vc_msw\base\stackwalk.obj
.\vc_msw\base\stdpaths.obj
.\vc_msw\base\thread.obj
.\vc_msw\base\utils.obj
.\vc_msw\base\utilsexc.obj
.\vc_msw\base\volume.obj

"C:\WX262\lib\vc_lib\wxbase26_net.lib" contains the following object files
.\vc_msw\net\fs_inet.obj
.\vc_msw\net\ftp.obj
.\vc_msw\net\http.obj
.\vc_msw\net\protocol.obj
.\vc_msw\net\sckaddr.obj
.\vc_msw\net\sckfile.obj
.\vc_msw\net\sckipc.obj
.\vc_msw\net\sckstrm.obj
.\vc_msw\net\socket.obj
.\vc_msw\net\url.obj
.\vc_msw\net\dummy.obj
.\vc_msw\net\gsocket.obj
.\vc_msw\net\urlmsw.obj

"C:\WX262\lib\vc_lib\wxbase26_odbc.lib" contains the following object files
.\vc_msw\odbc\db.obj
.\vc_msw\odbc\dbtable.obj
.\vc_msw\odbc\dummy.obj

"C:\WX262\lib\vc_lib\wxbase26_xml.lib" contains the following object files
.\vc_msw\xml\xtixml.obj
.\vc_msw\xml\dummy.obj
.\vc_msw\xml\xml.obj

"C:\WX262\lib\vc_lib\wxexpat.lib" contains the following object files
.\vc_msw\wxexpat\xmlparse.obj
.\vc_msw\wxexpat\xmlrole.obj
.\vc_msw\wxexpat\xmltok.obj

"C:\WX262\lib\vc_lib\wxjpeg.lib" contains the following object files
.\vc_msw\wxjpeg\jcapimin.obj
.\vc_msw\wxjpeg\jcapistd.obj
.\vc_msw\wxjpeg\jccoefct.obj
.\vc_msw\wxjpeg\jccolor.obj
.\vc_msw\wxjpeg\jcdctmgr.obj
.\vc_msw\wxjpeg\jchuff.obj
.\vc_msw\wxjpeg\jcinit.obj
.\vc_msw\wxjpeg\jcmainct.obj
.\vc_msw\wxjpeg\jcmarker.obj
.\vc_msw\wxjpeg\jcmaster.obj
.\vc_msw\wxjpeg\jcomapi.obj
.\vc_msw\wxjpeg\jcparam.obj
.\vc_msw\wxjpeg\jcphuff.obj
.\vc_msw\wxjpeg\jcprepct.obj
.\vc_msw\wxjpeg\jcsample.obj
.\vc_msw\wxjpeg\jctrans.obj
.\vc_msw\wxjpeg\jdapimin.obj
.\vc_msw\wxjpeg\jdapistd.obj
.\vc_msw\wxjpeg\jdatadst.obj
.\vc_msw\wxjpeg\jdatasrc.obj
.\vc_msw\wxjpeg\jdcoefct.obj
.\vc_msw\wxjpeg\jdcolor.obj
.\vc_msw\wxjpeg\jddctmgr.obj
.\vc_msw\wxjpeg\jdhuff.obj
.\vc_msw\wxjpeg\jdinput.obj
.\vc_msw\wxjpeg\jdmainct.obj
.\vc_msw\wxjpeg\jdmarker.obj
.\vc_msw\wxjpeg\jdmaster.obj
.\vc_msw\wxjpeg\jdmerge.obj
.\vc_msw\wxjpeg\jdphuff.obj
.\vc_msw\wxjpeg\jdpostct.obj
.\vc_msw\wxjpeg\jdsample.obj
.\vc_msw\wxjpeg\jdtrans.obj
.\vc_msw\wxjpeg\jerror.obj
.\vc_msw\wxjpeg\jfdctflt.obj
.\vc_msw\wxjpeg\jfdctfst.obj
.\vc_msw\wxjpeg\jfdctint.obj
.\vc_msw\wxjpeg\jidctflt.obj
.\vc_msw\wxjpeg\jidctfst.obj
.\vc_msw\wxjpeg\jidctint.obj
.\vc_msw\wxjpeg\jidctred.obj
.\vc_msw\wxjpeg\jmemmgr.obj
.\vc_msw\wxjpeg\jmemnobs.obj
.\vc_msw\wxjpeg\jquant1.obj
.\vc_msw\wxjpeg\jquant2.obj
.\vc_msw\wxjpeg\jutils.obj

"C:\WX262\lib\vc_lib\wxmsw26_adv.lib" contains the following object files
.\vc_msw\adv\taskbarcmn.obj
.\vc_msw\adv\datectrl.obj
.\vc_msw\adv\dummy.obj
.\vc_msw\adv\joystick.obj
.\vc_msw\adv\sound.obj
.\vc_msw\adv\taskbar.obj
.\vc_msw\adv\calctrl.obj
.\vc_msw\adv\datectlg.obj
.\vc_msw\adv\grid.obj
.\vc_msw\adv\gridctrl.obj
.\vc_msw\adv\gridsel.obj
.\vc_msw\adv\helpext.obj
.\vc_msw\adv\laywin.obj
.\vc_msw\adv\propdlg.obj
.\vc_msw\adv\sashwin.obj
.\vc_msw\adv\splash.obj
.\vc_msw\adv\tipdlg.obj
.\vc_msw\adv\wizard.obj

"C:\WX262\lib\vc_lib\wxmsw26_core.lib" contains the following object files
.\vc_msw\core\accesscmn.obj
.\vc_msw\core\appcmn.obj
.\vc_msw\core\artprov.obj
.\vc_msw\core\artstd.obj
.\vc_msw\core\bmpbase.obj
.\vc_msw\core\bookctrl.obj
.\vc_msw\core\choiccmn.obj
.\vc_msw\core\clipcmn.obj
.\vc_msw\core\cmdproc.obj
.\vc_msw\core\cmndata.obj
.\vc_msw\core\containr.obj
.\vc_msw\core\cshelp.obj
.\vc_msw\core\ctrlcmn.obj
.\vc_msw\core\ctrlsub.obj
.\vc_msw\core\datacmn.obj
.\vc_msw\core\dcbase.obj
.\vc_msw\core\dlgcmn.obj
.\vc_msw\core\dndcmn.obj
.\vc_msw\core\dobjcmn.obj
.\vc_msw\core\docmdi.obj
.\vc_msw\core\docview.obj
.\vc_msw\core\dpycmn.obj
.\vc_msw\core\dseldlg.obj
.\vc_msw\core\effects.obj
.\vc_msw\core\event.obj
.\vc_msw\core\fddlgcmn.obj
.\vc_msw\core\fldlgcmn.obj
.\vc_msw\core\fontcmn.obj
.\vc_msw\core\fontmap.obj
.\vc_msw\core\framecmn.obj
.\vc_msw\core\fs_mem.obj
.\vc_msw\core\gaugecmn.obj
.\vc_msw\core\gbsizer.obj
.\vc_msw\core\gdicmn.obj
.\vc_msw\core\geometry.obj
.\vc_msw\core\gifdecod.obj
.\vc_msw\core\helpbase.obj
.\vc_msw\core\iconbndl.obj
.\vc_msw\core\imagall.obj
.\vc_msw\core\imagbmp.obj
.\vc_msw\core\image.obj
.\vc_msw\core\imagfill.obj
.\vc_msw\core\imaggif.obj
.\vc_msw\core\imagiff.obj
.\vc_msw\core\imagjpeg.obj
.\vc_msw\core\imagpcx.obj
.\vc_msw\core\imagpng.obj
.\vc_msw\core\imagpnm.obj
.\vc_msw\core\imagtiff.obj
.\vc_msw\core\imagxpm.obj
.\vc_msw\core\layout.obj
.\vc_msw\core\lboxcmn.obj
.\vc_msw\core\matrix.obj
.\vc_msw\core\menucmn.obj
.\vc_msw\core\msgout.obj
.\vc_msw\core\nbkbase.obj
.\vc_msw\core\paper.obj
.\vc_msw\core\popupcmn.obj
.\vc_msw\core\prntbase.obj
.\vc_msw\core\quantize.obj
.\vc_msw\core\radiocmn.obj
.\vc_msw\core\rendcmn.obj
.\vc_msw\core\rgncmn.obj
.\vc_msw\core\settcmn.obj
.\vc_msw\core\sizer.obj
.\vc_msw\core\statbar.obj
.\vc_msw\core\stockitem.obj
.\vc_msw\core\tbarbase.obj
.\vc_msw\core\textcmn.obj
.\vc_msw\core\timercmn.obj
.\vc_msw\core\toplvcmn.obj
.\vc_msw\core\treebase.obj
.\vc_msw\core\utilscmn.obj
.\vc_msw\core\valgen.obj
.\vc_msw\core\validate.obj
.\vc_msw\core\valtext.obj
.\vc_msw\core\wincmn.obj
.\vc_msw\core\xpmdecod.obj
.\vc_msw\core\accel.obj
.\vc_msw\core\access.obj
.\vc_msw\core\app.obj
.\vc_msw\core\automtn.obj
.\vc_msw\core\bitmap.obj
.\vc_msw\core\bmpbuttn.obj
.\vc_msw\core\brush.obj
.\vc_msw\core\button.obj
.\vc_msw\core\caret.obj
.\vc_msw\core\checkbox.obj
.\vc_msw\core\checklst.obj
.\vc_msw\core\choice.obj
.\vc_msw\core\clipbrd.obj
.\vc_msw\core\colordlg.obj
.\vc_msw\core\colour.obj
.\vc_msw\core\combobox.obj
.\vc_msw\core\control.obj
.\vc_msw\core\cursor.obj
.\vc_msw\core\data.obj
.\vc_msw\core\dataobj.obj
.\vc_msw\core\dc.obj
.\vc_msw\core\dcclient.obj
.\vc_msw\core\dcmemory.obj
.\vc_msw\core\dcprint.obj
.\vc_msw\core\dcscreen.obj
.\vc_msw\core\dialog.obj
.\vc_msw\core\dialup.obj
.\vc_msw\core\dib.obj
.\vc_msw\core\dirdlg.obj
.\vc_msw\core\display.obj
.\vc_msw\core\dragimag.obj
.\vc_msw\core\dropsrc.obj
.\vc_msw\core\droptgt.obj
.\vc_msw\core\dummy.obj
.\vc_msw\core\enhmeta.obj
.\vc_msw\core\evtloop.obj
.\vc_msw\core\fdrepdlg.obj
.\vc_msw\core\filedlg.obj
.\vc_msw\core\font.obj
.\vc_msw\core\fontdlg.obj
.\vc_msw\core\fontenum.obj
.\vc_msw\core\fontutil.obj
.\vc_msw\core\frame.obj
.\vc_msw\core\gauge95.obj
.\vc_msw\core\gdiimage.obj
.\vc_msw\core\gdiobj.obj
.\vc_msw\core\gsockmsw.obj
.\vc_msw\core\helpchm.obj
.\vc_msw\core\helpwin.obj
.\vc_msw\core\icon.obj
.\vc_msw\core\imaglist.obj
.\vc_msw\core\iniconf.obj
.\vc_msw\core\listbox.obj
.\vc_msw\core\listctrl.obj
.\vc_msw\core\main.obj
.\vc_msw\core\mdi.obj
.\vc_msw\core\menu.obj
.\vc_msw\core\menuitem.obj
.\vc_msw\core\metafile.obj
.\vc_msw\core\minifram.obj
.\vc_msw\core\msgdlg.obj
.\vc_msw\core\mslu.obj
.\vc_msw\core\nativdlg.obj
.\vc_msw\core\notebook.obj
.\vc_msw\core\oleutils.obj
.\vc_msw\core\ownerdrw.obj
.\vc_msw\core\palette.obj
.\vc_msw\core\pen.obj
.\vc_msw\core\popupwin.obj
.\vc_msw\core\printdlg.obj
.\vc_msw\core\printwin.obj
.\vc_msw\core\radiobox.obj
.\vc_msw\core\radiobut.obj
.\vc_msw\core\region.obj
.\vc_msw\core\renderer.obj
.\vc_msw\core\scrolbar.obj
.\vc_msw\core\settings.obj
.\vc_msw\core\slider95.obj
.\vc_msw\core\spinbutt.obj
.\vc_msw\core\spinctrl.obj
.\vc_msw\core\statbmp.obj
.\vc_msw\core\statbox.obj
.\vc_msw\core\statbr95.obj
.\vc_msw\core\statline.obj
.\vc_msw\core\stattext.obj
.\vc_msw\core\tabctrl.obj
.\vc_msw\core\tbar95.obj
.\vc_msw\core\textctrl.obj
.\vc_msw\core\tglbtn.obj
.\vc_msw\core\timer.obj
.\vc_msw\core\tooltip.obj
.\vc_msw\core\toplevel.obj
.\vc_msw\core\treectrl.obj
.\vc_msw\core\utilsgui.obj
.\vc_msw\core\uuid.obj
.\vc_msw\core\uxtheme.obj
.\vc_msw\core\volume.obj
.\vc_msw\core\window.obj
.\vc_msw\core\busyinfo.obj
.\vc_msw\core\choicbkg.obj
.\vc_msw\core\choicdgg.obj
.\vc_msw\core\dcpsg.obj
.\vc_msw\core\dirctrlg.obj
.\vc_msw\core\dragimgg.obj
.\vc_msw\core\listbkg.obj
.\vc_msw\core\logg.obj
.\vc_msw\core\numdlgg.obj
.\vc_msw\core\panelg.obj
.\vc_msw\core\printps.obj
.\vc_msw\core\prntdlgg.obj
.\vc_msw\core\progdlgg.obj
.\vc_msw\core\renderg.obj
.\vc_msw\core\scrlwing.obj
.\vc_msw\core\selstore.obj
.\vc_msw\core\spinctlg.obj
.\vc_msw\core\splitter.obj
.\vc_msw\core\statusbr.obj
.\vc_msw\core\textdlgg.obj
.\vc_msw\core\tipwin.obj
.\vc_msw\core\treectlg.obj
.\vc_msw\core\vlbox.obj
.\vc_msw\core\vscroll.obj

"C:\WX262\lib\vc_lib\wxmsw26_dbgrid.lib" contains the following object files
.\vc_msw\dbgrid\dbgrid.obj
.\vc_msw\dbgrid\dummy.obj

"C:\WX262\lib\vc_lib\wxmsw26_gl.lib" contains the following object files
.\vc_msw\gl\dummy.obj
.\vc_msw\gl\glcanvas.obj

"C:\WX262\lib\vc_lib\wxmsw26_html.lib" contains the following object files
.\vc_msw\html\dummy.obj
.\vc_msw\html\helpbest.obj
.\vc_msw\html\htmllbox.obj
.\vc_msw\html\helpctrl.obj
.\vc_msw\html\helpdata.obj
.\vc_msw\html\helpfrm.obj
.\vc_msw\html\htmlcell.obj
.\vc_msw\html\htmlfilt.obj
.\vc_msw\html\htmlpars.obj
.\vc_msw\html\htmltag.obj
.\vc_msw\html\htmlwin.obj
.\vc_msw\html\htmprint.obj
.\vc_msw\html\m_dflist.obj
.\vc_msw\html\m_fonts.obj
.\vc_msw\html\m_hline.obj
.\vc_msw\html\m_image.obj
.\vc_msw\html\m_layout.obj
.\vc_msw\html\m_links.obj
.\vc_msw\html\m_list.obj
.\vc_msw\html\m_pre.obj
.\vc_msw\html\m_style.obj
.\vc_msw\html\m_tables.obj
.\vc_msw\html\winpars.obj

"C:\WX262\lib\vc_lib\wxmsw26_media.lib" contains the following object files
.\vc_msw\media\mediactrlcmn.obj
.\vc_msw\media\activex.obj
.\vc_msw\media\dummy.obj
.\vc_msw\media\mediactrl.obj

"C:\WX262\lib\vc_lib\wxmsw26_qa.lib" contains the following object files
.\vc_msw\qa\debugrpt.obj
.\vc_msw\qa\dummy.obj
.\vc_msw\qa\dbgrptg.obj

"C:\WX262\lib\vc_lib\wxmsw26_xrc.lib" contains the following object files
.\vc_msw\xrc\dummy.obj
.\vc_msw\xrc\xh_bmp.obj
.\vc_msw\xrc\xh_bmpbt.obj
.\vc_msw\xrc\xh_bttn.obj
.\vc_msw\xrc\xh_cald.obj
.\vc_msw\xrc\xh_chckb.obj
.\vc_msw\xrc\xh_chckl.obj
.\vc_msw\xrc\xh_choic.obj
.\vc_msw\xrc\xh_choicbk.obj
.\vc_msw\xrc\xh_combo.obj
.\vc_msw\xrc\xh_datectrl.obj
.\vc_msw\xrc\xh_dlg.obj
.\vc_msw\xrc\xh_frame.obj
.\vc_msw\xrc\xh_gauge.obj
.\vc_msw\xrc\xh_gdctl.obj
.\vc_msw\xrc\xh_html.obj
.\vc_msw\xrc\xh_listb.obj
.\vc_msw\xrc\xh_listbk.obj
.\vc_msw\xrc\xh_listc.obj
.\vc_msw\xrc\xh_mdi.obj
.\vc_msw\xrc\xh_menu.obj
.\vc_msw\xrc\xh_notbk.obj
.\vc_msw\xrc\xh_panel.obj
.\vc_msw\xrc\xh_radbt.obj
.\vc_msw\xrc\xh_radbx.obj
.\vc_msw\xrc\xh_scrol.obj
.\vc_msw\xrc\xh_scwin.obj
.\vc_msw\xrc\xh_sizer.obj
.\vc_msw\xrc\xh_slidr.obj
.\vc_msw\xrc\xh_spin.obj
.\vc_msw\xrc\xh_split.obj
.\vc_msw\xrc\xh_statbar.obj
.\vc_msw\xrc\xh_stbmp.obj
.\vc_msw\xrc\xh_stbox.obj
.\vc_msw\xrc\xh_stlin.obj
.\vc_msw\xrc\xh_sttxt.obj
.\vc_msw\xrc\xh_text.obj
.\vc_msw\xrc\xh_tglbtn.obj
.\vc_msw\xrc\xh_toolb.obj
.\vc_msw\xrc\xh_tree.obj
.\vc_msw\xrc\xh_unkwn.obj
.\vc_msw\xrc\xh_wizrd.obj
.\vc_msw\xrc\xmlres.obj
.\vc_msw\xrc\xmlrsall.obj

"C:\WX262\lib\vc_lib\wxpng.lib" contains the following object files
.\vc_msw\wxpng\png.obj
.\vc_msw\wxpng\pngerror.obj
.\vc_msw\wxpng\pnggccrd.obj
.\vc_msw\wxpng\pngget.obj
.\vc_msw\wxpng\pngmem.obj
.\vc_msw\wxpng\pngpread.obj
.\vc_msw\wxpng\pngread.obj
.\vc_msw\wxpng\pngrio.obj
.\vc_msw\wxpng\pngrtran.obj
.\vc_msw\wxpng\pngrutil.obj
.\vc_msw\wxpng\pngset.obj
.\vc_msw\wxpng\pngtrans.obj
.\vc_msw\wxpng\pngvcrd.obj
.\vc_msw\wxpng\pngwio.obj
.\vc_msw\wxpng\pngwrite.obj
.\vc_msw\wxpng\pngwtran.obj
.\vc_msw\wxpng\pngwutil.obj

"C:\WX262\lib\vc_lib\wxregex.lib" contains the following object files
.\vc_msw\wxregex\regcomp.obj
.\vc_msw\wxregex\regerror.obj
.\vc_msw\wxregex\regexec.obj
.\vc_msw\wxregex\regfree.obj

"C:\WX262\lib\vc_lib\wxtiff.lib" contains the following object files
.\vc_msw\wxtiff\tif_aux.obj
.\vc_msw\wxtiff\tif_close.obj
.\vc_msw\wxtiff\tif_codec.obj
.\vc_msw\wxtiff\tif_color.obj
.\vc_msw\wxtiff\tif_compress.obj
.\vc_msw\wxtiff\tif_dir.obj
.\vc_msw\wxtiff\tif_dirinfo.obj
.\vc_msw\wxtiff\tif_dirread.obj
.\vc_msw\wxtiff\tif_dirwrite.obj
.\vc_msw\wxtiff\tif_dumpmode.obj
.\vc_msw\wxtiff\tif_error.obj
.\vc_msw\wxtiff\tif_extension.obj
.\vc_msw\wxtiff\tif_fax3.obj
.\vc_msw\wxtiff\tif_fax3sm.obj
.\vc_msw\wxtiff\tif_flush.obj
.\vc_msw\wxtiff\tif_getimage.obj
.\vc_msw\wxtiff\tif_jpeg.obj
.\vc_msw\wxtiff\tif_luv.obj
.\vc_msw\wxtiff\tif_lzw.obj
.\vc_msw\wxtiff\tif_next.obj
.\vc_msw\wxtiff\tif_open.obj
.\vc_msw\wxtiff\tif_packbits.obj
.\vc_msw\wxtiff\tif_pixarlog.obj
.\vc_msw\wxtiff\tif_predict.obj
.\vc_msw\wxtiff\tif_print.obj
.\vc_msw\wxtiff\tif_read.obj
.\vc_msw\wxtiff\tif_strip.obj
.\vc_msw\wxtiff\tif_swab.obj
.\vc_msw\wxtiff\tif_thunder.obj
.\vc_msw\wxtiff\tif_tile.obj
.\vc_msw\wxtiff\tif_version.obj
.\vc_msw\wxtiff\tif_warning.obj
.\vc_msw\wxtiff\tif_win32.obj
.\vc_msw\wxtiff\tif_write.obj
.\vc_msw\wxtiff\tif_zip.obj

"C:\WX262\lib\vc_lib\wxzlib.lib" contains the following object files
.\vc_msw\wxzlib\adler32.obj
.\vc_msw\wxzlib\compress.obj
.\vc_msw\wxzlib\crc32.obj
.\vc_msw\wxzlib\deflate.obj
.\vc_msw\wxzlib\gzio.obj
.\vc_msw\wxzlib\infback.obj
.\vc_msw\wxzlib\inffast.obj
.\vc_msw\wxzlib\inflate.obj
.\vc_msw\wxzlib\inftrees.obj
.\vc_msw\wxzlib\trees.obj
.\vc_msw\wxzlib\uncompr.obj
.\vc_msw\wxzlib\zutil.obj

October 2, 2005

CueCard

Filed under: wxWidgets, Alternatives

CueCard is a freeware flashcard program with source code available. Since it was written using the wxWidgets (formerly wxWindows) application framework, which is what I am using, I downloaded the source and executable for a closer look.

Instead of Leitner sorting of cards presented, it has its own way of taking missed answers into account. The design is very clean, it doesn't require looking at any help file at all. It influenced me to take care of the user interface in my flashcard game. So far the source code hasn't influenced me much, but I want to take a look at his Unicode support because that’s important.

The one I am writing wants to be a commercial project, although with a hobbyist time frame unfortunately. I will try to always keep "light" versions as freeware. I am not planning a free release of the complete source code of either version. I don’t expect it to be a blockbuster app, just enough to keep me from chasing nickels on Blogger. (The Google ads on this page are not mine, they help keep the blogsome.com service free.)






















Get free blog up and running in minutes with Blogsome | Theme designs available here