Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Readers' Forum


May 2001/Readers' Forum


Send letters to [email protected]. Letters may be edited for style and length.


A few months back, there was some discussion in the Readers’ Forum regarding the purpose of certain keyboard keys such as Scroll Lock. I just stumbled across Knowledge Base article Q244139 that documents a new use that Microsoft has invented for Scroll Lock. Apparently Windows 2000 implements a new feature that, once enabled via a registry setting, allows you to crash your system on purpose using the Scroll Lock key. They must have added that for compatibility with Windows 9x.

Chris Branch
[email protected]


Regarding the letter from Jim Johnson in your most recent issue, I’ve been using ATL and WTL for front-end development for a year now. At my company, we use it to drive the front-end UI pieces of our distributed platform components. Of particular value are the basic MFC classes for GDI and String manipulation (based on STL). We use the WTL Wizard from inside C++ to start off.

It’s a real treasure for creating lightweight components. (You simply can’t download MFC to users and expect dialup people to put up with it.)

Jerome


I’m not sure if this qualifies as a “programming tool.” In my job, I routinely have to run a processing program on very large (multi-gigabyte) files. Occasionally there are problems in the file where I need to look at a specific record.

I have been unable to find an editing tool that will allow me to open such a large file and move to a specific line number, or even search. They all seem to run out of memory just trying to open the file.

I am absolutely sure that more than one editor vendor can offer you snappy response on multi-gigabyte files. They can drop me a note at [email protected], and I will give them all a mention.


Lately I’ve been getting interested in SOAP. We have a six-year old network-based product with Windows or Mac clients and a Unix or Linux server. The protocol is binary, inflexible, and proprietary. We want to replace it with something text-based, flexible, and open. SOAP looks like a perfect solution.

What I want is a program that takes a C++ header file and generates the code to export its functions via SOAP. I want it to handle all the networking and XML: when my program calls a function on a remote object, the generated code should translate that function call into a SOAP message, translate the SOAP message back into a function call on the target machine, and then send a SOAP reply back with the “out” parameters and function return value.

Oh, and can it be open source to boot?

There are Java and Perl tools that do this, but I think C++ is missing them because it doesn’t have reflection. Microsoft has a beta tool, but I haven’t investigated it yet. I’m a little apprehensive about trusting it. I’m sure you understand.

Until that fine day, I guess I’ll have to roll my own with an XML parser in one hand and a Winsock book in the other.

Mark Foley
[email protected]

My guess is that someone either has such a tool, or is working furiously on it. Send mail to [email protected] if you’re that person! —rlb


Dear Ron,

I’m writing in regard to your question on page 72 in the February issue of WDJ

1. You really don’t know, that under Windows (all types), the print screen key makes a hard copy of your monitor to the clipboard? I use it every day to make my program documentation.

2 . I am working under Win32, with Borland C++ and sometimes with C++ Builder. In my surroundings, I know to work with C++ Builder, but not with Visual C! About every two years, I take a look at Visual C and return to my Borland. (I have been using it since TC 1.0). It works well for me, the shell is better, and I hate MFC and like OWL and VCL. (OWL is more flexible for my demands.)

Best wishes,

Fazekas Sándor [email protected]


In response to the letter from Rob Anderson in the March issue of WDJ, where he states that the VC 7 Beta Documentation indicates that Microsoft has only fixed 3 of 14 recognized incompatibilities with the ISO/ANSI C++ Standard, I wish to point out that this is a flaw in the beta documentation rather than the compiler.

I have been actively checking the Microsoft newsgroups for .NET (news://microsoft.public.dotnet.languages.vc and news://microsoft.public.dotnet.languages.vc.libraries), and Microsoft has addressed quite a few more deficiencies.

VC 7 Beta supports

  • covariant return types
  • correct for-loop variable scoping
  • wchar_t as an actual type

(For legacy support, for scoping and wchar_t are controlled independently of Microsoft extensions with new command-line options; /Zc:forScope and /Zc:wchar_t).

Also, Ron Laermans of Microsoft posted this notation: “WARNING: Only leftmost base covariant returns work in Beta 1. Full support will be in Beta 2.”, so don’t write in letters on this until after Beta 2.

Additionally, the libraries are being modified to compile with options set for greater compliance (although Windows-specific headers will still require Microsoft extensions).

Microsoft has been much more forthcoming about what will and will not make it into VC (although, or course, they can’t answer every question yet). Partial template is not going to make it into VC 7. It is listed to be fixed, but not this release (although some code using partial template specialization can apparently be made to work).

Koenig lookup appears not to be fixed, although I can’t recall any specific response on the status from Microsoft; I suspect it hasn’t been scheduled.

While ANSI/ISO compliance is obviously not the A-number-one priority at Microsoft, the situation is considerably better than Rob’s letter indicates.

Also note: Microsoft representatives stated that no work is being done at this time to add compliance with the newer C99 Standard.

I do not speak for Microsoft; draw your own conclusions.

Ron Ruble
[email protected]


Ron,

I am responding to your question “Anyone out there using C++ Builder?” in Readers’ Forum in the February edition of WDJ.

Yes I am, having been a Borland fan from the days of Turbo C v2.0. I resisted buying C++ Builder for a long time, shocked by the unexpected shift to Pascal when Delphi came out. I knew that C++ Builder was built on Delphi and could not disguise its Pascal underpinnings. Unfortunately, my trusty compiler of choice for many years, Borland C++ v5.02, was starting to show its age in various ways. I had to update, and the only viable choice for me was C++ Builder, which was at version 5 when I bought it last year.

I am pleased to report one important discovery about C++ Builder that I made only last week and that makes the transition from Borland C++ not so bad after all. That is, it is possible to build a traditional Win32 GUI application using C++ source files, resource files, and Microsoft libraries — the sort of applications that feature in WDJ. The reason why this is not obvious is that the IDE is set up for Rapid Application Development along the lines of Visual Basic. To build a traditional Win32 GUI application, one must select “Console Wizard” from “File” / “New” menu option. The Console Wizard is just a small dialog box with few selections, one of which is a check box marked “Console Application.” Just uncheck the box and away you go. I had “foolishly” made the mistake of thinking that the Console Wizard was exclusively for Console-style applications!

On a different note, this is the first time I have corresponded, even though I have been a regular reader from the days the publication was called Windows/DOS Developer’s Journal. The first publication I bought was the June 1992 edition. I checked out who the editor was back then. Well how about that! It was Ron Burk. You wrote in “From the Editor” some programming myths that you thought should be debunked to avoid programmers wasting time. Some helpful advice then and still trying to keep programmers productive today. Thanks for the consistent good work.

Regards

Andrew Bowley
[email protected]

Have I really been doing this magazine an entire decade? That’s too long for anybody to be doing the same thing! —rlb


I really enjoyed the January 2001 WDJ User Interface Programming article about comboboxes with user-set height and the flat style. It almost solved a problem for us. The problem is that it only works for drop-down comboboxes and not drop-down list comboboxes.

The first problem with drop-down list combo boxes is that they have no edit control. Therefore, the code that refers to the edit control does not work. This was easy to work around.

The second problem is that the drop-down list comboboxes paint directly to the control (again splashing themselves all over the parent DC) when the selection or focus changes. Therefore, my plan to modify your paint-handling code will not work, because not all drawing is done from that handler.

Do you have any suggestions for doing the same thing your January 2001 column did, but for drop-down list comboboxes? Of course, we can always drop back and write a combobox from scratch, and that is what it is looking like we will do.

Thanks.

Quinton Tormanen
[email protected]

Glad you liked the article. To handle drop-down list comboboxes, it seems to me that one would have to take over the painting completely and also intercept all the messages that cause painting. It’s a project I’d like to tackle, but it will be a while before I get around to it. In other words, if you need this within the next few months, you’re better off implementing something yourself, whether it’s a brand- new control or some combobox subclassing.

If you do, you should consider writing an article about it yourself — there’s no magic involved. See www.wdj.com/author/ for the gory details.

Thanks for the feedback, — ph


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.