How to check out-of-proc COM components.



We are developing using Visual C 6.0 and bounds checker 6.01.

We have developed a set of COM-components using ATL (some components are MFC rather than ATL.)

These are out-of-process servers in their own .exe's.

One of our components controls the others which cannot run alone.

We wish to run Bounds Checker against these stand alone componets when they are launched from our manager app.

- tried using Image File Executable option in the registry but BC interfered with out component creation

- using integrated debugging we tried to step into the component function call, normally this launches another VC instance but BC just stepped over the call.

How do we use BC to check these components?


Out-of-proc servers (EXEs): If they can be started normally as a standalone exe then simply open them and run; if they require a client connection then you may have to use the /AUTOMATION or /EMBEDDING parameters on the Program Command Line field in BC Settings. This will cause us to hang out and wait for the user to terminate the app rather than us exiting after QueryInterface returns. If the EXE is spawned then you need to set up the exe to run via ImageFileExecution options (discussed in the readme).

Regarding the Image File Execution Option:

There is a known (hard-coded in Windows NT) limitation on the path length that you can enter here. It MUST be < 24 characters including all spaces and other characters. Therefore if you have installed BC to the default directory, \Program Files, you may need to reinstall the product to the shortest path possible. We suggest something like [drive]:

mbc or the like. The manifestation of the path problem will not be evident; BC will simply not check your code or write a .bce file.

Also FYI:

In-proc-servers (DLLs / OCXs): the same as a regular Win32 DLL. You need an exe to test them and you need to add them to the modules and files tab in BC Settings in order to have BC check them.

Old KB# 12260
Comment List
Related Discussions