Friday, July 27, 2012

MuPuPriNT v0.1a

As promised, I have created a source package for MuPuPriNT and uploaded it here.

It's simply an archive of my VS2010 solution directory with all its dependencies.

I recommend checking out the ReadMe file included in this archive, but for information's sake, I will touch on some important points here as well.

Known issues:
  • IsItPrime? has essentially not been updated since March. It is still incapable of testing numbers larger than 2^32-1 due to signedness restrictions. I am looking into ways to get around this.
  • Results files in any program will still sometimes print text l i k e t h i s and/or cut off at a certain point (usually around the "formula" section. I do not know why beyond that it has something to do with character encoding (which is, by default, Unicode).
  • The "Save" button in GJSieve is deprecated. It still works, but will be phased out soon. It makes more sense to save as the formula.
  • There are some inconsistencies across programs. These are mainly cosmetic in nature and will be dealt with. They ought not affect normal usage.
Not issues, but rather not yet implemented:
  • Most menu items (still) do nothing. This includes everything on the View menu.
  • The NullCoding menu's only option will, upon being clicked, simply create a blank window. This window is meant to contain hyperlinks but I have not yet gotten that to work. 
  • More often than not, you get huge outputs that obviously do not fit in the boxes provided. These will be made scrollable in the future.
  • Progress indicators are forthcoming, but currently nonexistant
  • The buttons are really boring. For reasons I can't understand, they will not display the icons I am telling them to!
Not issues, but not ideal either:
  • If you actually look closely at the code, you will notice that edit controls are basically recycled throughout the program  - that is, they are defined once in the resource header and then used in pretty much the same way (or else only slightly differently) in each program instance. 
  • The only reason this could get confusing is because of naming - for instance, IDC_PROTH is the name of every formula display box, and IDC_CPU is (for some reason) the name of one of the status bars. 
  • Additionally, most handles, besides being (problematically?) consistent across programs, are left over from several weeks ago when development got off to a pretty slow and bumpy start. This is why some are called things like hEdit, hEdit2, hDlg, and hWndButton while others are called things like ndesc, bignum, and factors. Perhaps in the future these will be updated to reflect their true purposes, but for now it is not really a problem unless you are utterly unfamiliar with the code.
Another problem is that I do not fully know how to use the SysLink function. Remember, I use pure Win32 API with VC++, without MFC or ATL. This means MFC Link Controls are out of the question.

MSDN's documentation is, as usual, sparse and generally unhelpful. Their instructions for calling the InitCommonControlsEx function are also unhelpful, seeing as when I call it, I am told that I am, in fact, redefining it, as it is already called in CommCtrl.h and I assume that CommCtrl32.lib is automatically included. Am I wrong in thinking that?

Since everything else, including every single other control in the program, works perfectly,  I am blaming myself for making an amateur mistake somewhere along the lines. Then again, that's partially why I made this blog - so I can look back in the future and laugh at my relative lack of experience.

I have currently been teaching myself C/C++ for three weeks and the Win32 API for two weeks. How time flies!

No comments:

Post a Comment