Re: C++ Version 6 app using c++ version 8 dll
- From: David Wilkinson <no-reply@xxxxxxxxxxxx>
- Date: Tue, 10 Apr 2007 12:02:26 -0500
David wrote:
Hello all,
My company is in the process of migrating to Visual Studio 2005. For now only new development is happening in 2005, leaving existing programs in version 6.
I have developed a MFC version 8 dll. A version 6 application needs to link to this new dll. The problem I am having is related to STRINGS. The dll exports a few functions that have strings as parameters. These function generated linker errors.
TestDlg.obj : error LNK2001: unresolved external symbol "int __cdecl Test(char const *,char const *)" (?Test @@YAHPBD0@Z)
Test.obj : error LNK2001: unresolved external symbol "int __cdecl Test2(int,int,char *,int *)" (?Test2@@YAHHHPADPAH@Z)
There are two other functions being exported that only have ints as parameters, and they do not give this linker error.
The prototypes for these two functions are:
__declspec(dllexport) BOOL Test (int nParam1, int nParam2, LPTSTR strError, int *p_nLen);
__declspec(dllexport) BOOL Test2 (LPCTSTR strPath, LPCTSTR strFile);
In the Test(…) function if an error occurs strError will have the error string.
How can I get this to work?
David:
Mixing compiler versions is usually not a good idea, but if you have a C-interface with simple types it should work.
It looks to me that the problem is your Unicode settings. It might seem that your VC6 app is an ANSI build, but your VC8 DLL is a Unicode build.
--
David Wilkinson
Visual C++ MVP
.
- Follow-Ups:
- Re: C++ Version 6 app using c++ version 8 dll
- From: David
- Re: C++ Version 6 app using c++ version 8 dll
- Prev by Date: Re: SetFocus problem.
- Next by Date: Re: Vista WH_JOURNALPLAYBACK
- Previous by thread: Re: C++ Version 6 app using c++ version 8 dll
- Next by thread: Re: C++ Version 6 app using c++ version 8 dll
- Index(es):
Relevant Pages
|