Connecting Tech Pros Worldwide Help | Site Map

How to get standard C and C++ working together? How to debug a DLL?

 
LinkBack Thread Tools Search this Thread
  #1  
Old July 19th, 2005, 04:18 PM
Christian Graf
Guest
 
Posts: n/a
Default How to get standard C and C++ working together? How to debug a DLL?

Hi,

(sorry if this post might occur two times, but I can't find my first
one from yesterday evening in this group)

I have a bigger VC++6.0 project which is successfully compiled into a
DLL. I had to combine this code with my one which worked fine for
itself. After integrating my code one into one of the classes the the
compiler threw errors. They disappeared after the compiler option
__STDC__ was removed. Apparently the larger project was build in full
conformance with the ANSI C standard. My code is C++ code (and can't
be rewritten), thus the errors when compiled with __STDC__ activated.
An additional __ANSI_CPP__ is defined in the DLL project as well, but
doesn't seem to harm or benefit to the build process of the combined
project.

The problem now is, that my DLL does compile without erros but doesn't
work when used by an EXE. It simply crashes. As a DLL has no console
output, how can I get some indication what goes wrong? How can I debug
a DLL with VC++? And most importantly: How can I integrate ANSI C and
VC++ in one project? Is there such a thing as guidelines, general
rules or special compiler settings?

Cheers
Chris

  #2  
Old July 19th, 2005, 04:18 PM
ak
Guest
 
Posts: n/a
Default Re: How to get standard C and C++ working together? How to debug a DLL?

On 11 Aug 2003 15:13:18 -0700, christian.graf@hitlabnz.org (Christian Graf)
wrote:

|The problem now is, that my DLL does compile without erros but doesn't
|work when used by an EXE. It simply crashes. As a DLL has no console
|output, how can I get some indication what goes wrong? How can I debug
|a DLL with VC++? And most importantly: How can I integrate ANSI C and
|VC++ in one project? Is there such a thing as guidelines, general
|rules or special compiler settings?

Since you are the author of the DLL it should be no problem to debug it,
just specify the .EXE as startup for your DLL in the debug options.
Alternatively you could build in trace output by using TRACE() / ATLTRACE() /
OutputDebugString in your DLL and use DBGViEW from www.sysinternals.com
to check the debug output.

your exported functions in the DLL must bear non-mangled names by specifying
them being extern "C" if they are to be used by a C program, there are also some
rules what you can export to a C-program - check your online help.

anyway try posting in microsoft.public.vc.language or any other suitable
microsoft.public NGs for better help.

hth
Anders

--
ak @ workmail.com
A wise man washes his hands after he pees. A wiser man doesn't pee on his hands.
  #3  
Old July 19th, 2005, 04:18 PM
Emry
Guest
 
Posts: n/a
Default Re: How to get standard C and C++ working together? How to debug a DLL?


"Christian Graf" <christian.graf@hitlabnz.org> wrote in message
news:6fcb9717.0308111413.433798fd@posting.google.c om...[color=blue]
> Hi,
>[/color]
<snip>

In most cases, if you simply just include the C code, and compile the entire
thing as if it were C++, you should have no problems. Just make sure to
include the right include files for the appropriate C functions.



 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.