Link to home
Create AccountLog in
Editors IDEs

Editors IDEs

--

Questions

--

Followers

Top Experts

Avatar of jj_30
jj_30

LNK 2001 Unresolved External Symbol CxxFrameHandler3
Good Day,
I have a project that a coworker did in VS 2003 C++. Actually a group project with five sub projects. Four out of five load fine after some configuration, in VS 2008.

The fifth however, has been giving me the finger (the middle) for about three days. I am nearly sure that it is a 2003/2008 issue.

It is currently saying "error LNK2001: unresolved external symbol __CxxFrameHandler3." The CXXFrameHandler3 is part of LibCpmt.LIB. Which I have many on my machine (11).  I therefore tried /NODEFAULTLIB:libcpmt.lib (since it worked last time with nafxcw.lib), but this had no effect.

I also turned off the buffer security check flag (/GS-)

Any suggestions?

Zero AI Policy

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


Avatar of jj_30jj_30

ASKER

Finished searching libraries
css_lib.lib(main.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
strmbase.lib(wxlist.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
strmbase.lib(wxutil.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
strmbase.lib(source.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Video.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
vmg.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
vts.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
strmbase.lib(amfilter.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
TMapT.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
TtSrpt.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
TxtdtMgi.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
UserOps.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
PtlMait.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
PttSrpt.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
SFile.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Subp.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Nv.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
pgc.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Pgcit.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
PgciUt.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CellPbi.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CellPosi.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Dsi.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
ifo.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Attr.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Audio.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
bcd.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CellAdt.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPSource.obj : error LNK2019: unresolved external symbol ___CxxFrameHandler3 referenced in function "private: __thiscall CPOutput::CPOutput(struct IUnknown *,long *)" (??0CPOutput@@AAE@PAUIUnknown@@PAJ@Z)
CPVideoOutputPin.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
VobuAdmap.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
Atrt.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPMediaFilter.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPNavigator.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPRender.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPSequence.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPDemultiplexer.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPDvdControl2.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPDvdInfo2.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPEnumSequences.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
CPDvdControl2.obj : error LNK2019: unresolved external symbol __ftol2_sse referenced in function "public: virtual long __stdcall CPOutput::PlayAtTime(struct tagDVD_HMSF_TIMECODE *,unsigned long,struct IDvdCmd * *)" (?PlayAtTime@CPOutput@@UAGJPAUtagDVD_HMSF_TIMECODE@@KPAPAUIDvdCmd@@@Z)
CPSource.obj : error LNK2001: unresolved external symbol __ftol2_sse
CPSource.obj : error LNK2019: unresolved external symbol "public: __thiscall CPosPassThru::CPosPassThru(char const *,struct IUnknown *,long *,struct IPin *)" (??0CPosPassThru@@QAE@PBDPAUIUnknown@@PAJPAUIPin@@@Z) referenced in function "private: virtual long __stdcall CPOutput::NonDelegatingQueryInterface(struct _GUID const &,void * *)" (?NonDelegatingQueryInterface@CPOutput@@EAGJABU_GUID@@PAPAX@Z)
CPUtilities.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl _open(char const *,int,int)" (__imp_?_open@@YAHPBDHH@Z) referenced in function "bool __cdecl GetDriveLetter(char *)" (?GetDriveLetter@@YA_NPAD@Z)
ifo.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl _open(char const *,int,int)" (__imp_?_open@@YAHPBDHH@Z)
CPVideoOutputPin.obj : error LNK2019: unresolved external symbol "protected: __thiscall CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)" (??0CSourceSeeking@@IAE@PBDPAUIUnknown@@PAJPAVCCritSec@@@Z) referenced in function "public: __thiscall VideoOutputPin::VideoOutputPin(long *,class CPOutput *,wchar_t const *)" (??0VideoOutputPin@@QAE@PAJPAVCPOutput@@PB_W@Z)
CPVideoOutputPin.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CSourceSeeking::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CSourceSeeking@@UAGJPAU_GUID@@@Z)
bcd.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function "public: __int64 __thiscall CBcd::timeAsRT(void)const " (?timeAsRT@CBcd@@QBE_JXZ)
Cell.obj : error LNK2001: unresolved external symbol __ftol2
strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol __ftol2
css_lib.lib(main.obj) : error LNK2001: unresolved external symbol __ftol2
libdvdcss.lib(device.obj) : error LNK2001: unresolved external symbol ___security_cookie
libdvdcss.lib(css.obj) : error LNK2019: unresolved external symbol ___security_cookie referenced in function "int __cdecl GetBusKey(struct dvdcss_s *)" (?GetBusKey@@YAHPAUdvdcss_s@@@Z)
libdvdcss.lib(ioctl.obj) : error LNK2001: unresolved external symbol ___security_cookie
css_lib.lib(main.obj) : error LNK2001: unresolved external symbol ___security_cookie
css_lib.lib(file_io.obj) : error LNK2001: unresolved external symbol ___security_cookie
css_lib.lib(parse_ifo.obj) : error LNK2001: unresolved external symbol ___security_cookie
libdvdcss.lib(libdvdcss.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(dllsetup.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(amvideo.obj) : error LNK2001: unresolved external symbol ___security_cookie
css_lib.lib(vstrip.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(amfilter.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(wxlist.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(wxutil.obj) : error LNK2001: unresolved external symbol ___security_cookie
strmbase.lib(source.obj) : error LNK2001: unresolved external symbol ___security_cookie
libdvdcss.lib(device.obj) : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "int __cdecl _dvdcss_use_ioctls(struct dvdcss_s *)" (?_dvdcss_use_ioctls@@YAHPAUdvdcss_s@@@Z)
libdvdcss.lib(css.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
libdvdcss.lib(ioctl.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
css_lib.lib(main.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
css_lib.lib(file_io.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
css_lib.lib(parse_ifo.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
libdvdcss.lib(libdvdcss.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(dllsetup.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(amvideo.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
css_lib.lib(vstrip.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(amfilter.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(wxlist.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(wxutil.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
strmbase.lib(source.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
css_lib.lib(file_io.obj) : error LNK2019: unresolved external symbol "int __cdecl _open(char const *,int,int)" (?_open@@YAHPBDHH@Z) referenced in function "void __cdecl fio_open_for_writing(struct t_fio_file *,char const *)" (?fio_open_for_writing@@YAXPAUt_fio_file@@PBD@Z)
libdvdcss.lib(error.obj) : error LNK2019: unresolved external symbol ___iob_func referenced in function "void __cdecl _dvdcss_error(struct dvdcss_s *,char *)" (?_dvdcss_error@@YAXPAUdvdcss_s@@PAD@Z)
..\Release\CPNavigator.ax : fatal error LNK1120: 11 unresolved externals

Open in new window

see error

Avatar of jj_30jj_30

ASKER

Added

C:\Program Files\Microsoft Visual Studio 9.0\VC\lib

as per

https://www.experts-exchange.com/questions/21675858/Link-error-in-VS-2005-beta.html

And this helped. Apparently I need both the VC 6 and VC 9 libs?  ??

Now it is saying ... (see below)... These are all internal projects (CPVideo, CPOutput)
Finished searching libraries
CPSource.obj : error LNK2019: unresolved external symbol "public: __thiscall CPosPassThru::CPosPassThru(char const *,struct IUnknown *,long *,struct IPin *)" (??0CPosPassThru@@QAE@PBDPAUIUnknown@@PAJPAUIPin@@@Z) referenced in function "private: virtual long __stdcall CPOutput::NonDelegatingQueryInterface(struct _GUID const &,void * *)" (?NonDelegatingQueryInterface@CPOutput@@EAGJABU_GUID@@PAPAX@Z)
CPVideoOutputPin.obj : error LNK2019: unresolved external symbol "protected: __thiscall CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)" (??0CSourceSeeking@@IAE@PBDPAUIUnknown@@PAJPAVCCritSec@@@Z) referenced in function "public: __thiscall VideoOutputPin::VideoOutputPin(long *,class CPOutput *,wchar_t const *)" (??0VideoOutputPin@@QAE@PAJPAVCPOutput@@PB_W@Z)
CPVideoOutputPin.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CSourceSeeking::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CSourceSeeking@@UAGJPAU_GUID@@@Z)
..\Release\CPNavigator.ax : fatal error LNK1120: 3 unresolved externals

Open in new window


>>>> Apparently I need both the VC 6 and VC 9 libs?  ??

No, definitively not. Each Visual Studio needs its own environment.

Only third party libraries  (CXXFrameHandler3?) may be used for both versions though that might give porting issues.

Any third party library must be added to the VC project, either by simply adding the .lib file to the project tree or - mostly better - to define it as linker input in the prject settings. That avoids the 'unresolved externals' for modules of that library.

>>>> I therefore tried /NODEFAULTLIB:libcpmt.lib (since it worked last time with nafxcw.lib)

/NODEFAULTLIB is for reparing a situation where you have duplicate symbols (just the contrary to 'unresolved'). But actually, it only repares a situation which wouldn't occur if there was no mix of single-threaded and multi-threaded libraries or if there were not made too much other errors by some manual settings before.

I don't know whether you could redo all your actions done. If not, I really recommend to uninstall both VC9 and VC and do a proper installation of VC6 and VC9 after. Then, create a new project by means of the wizard and move the source files of your current project to the newly (and correctly) generated project. Post, if you get linker errors prior to reparing anything what most likely is wrong and makes things worse.

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.


Avatar of jj_30jj_30

ASKER

Hm, there is some logic in your words, you're sort of saying I could go to 'hell' if I just keep hacking at it like I've been doing, whereas if I do it step by step, I have a chance.

If VC98 == VC 6.0, then I did install VC++ 6 then VC++ 9, in the proper order.

One of the projects complained about LARGEINT.LIB, which I only found on my machine in the VC98\Lib folder, so I have that project using the 6.0, and the others using the 9.0, which I hope doesn't get me into trouble.

Right now, I am reviewing the libraries that the one project that wont build is based on: StrmBase.lib (DirectShow base), css_lib.lib (one of ours), libxyzabc.lib (one of ours), quartz, vfw32, winmm, version, largeint, comctl32, olepro32, kernel32, user32, gdi32, winspool, comdlg32, advapi32, shell32, ole32, oleaut32, uuid, odbc32, and odbccp32.

I'm assuming that ONE of those is missing a library itself that has a definition for __CxxFrameHandle3, and I am thinking that it might be the DirectShow base class. Not 100% on that, but I WAS able to compile the directShow base classes before, WITHOUT having ANY of the header files. That is to say that they were visible in the VS project, but when I double-clicked them, they were "not found", and the project compiled without complaining.

So I may have a corrupted StrmBase.lib.  I am downloading the windows SDK because it is supposed to also be in there. All I really need is some kind of packing list or manifest to make sure I've got all the correct files. Anyone know where to find that?

SOLUTION
Avatar of itsmeandnobodyelseitsmeandnobodyelse🇩🇪

Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.
Create Account

SOLUTION
Avatar of pgnatyukpgnatyuk🇮🇱

Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.

Avatar of jj_30jj_30

ASKER

Ok, I got pulled off that project for a few days, and now I am back on. PGNatyuk, I checked those and changed them (one of the projects does have a form so I left that one as Multi-Threaded).

Not sure how it happened, but now two projects wont compile whereas before it was just one. But sometimes it's moving forward even though it looks like moving backwards.

itsmeandnobodyelse, I build the DirectShow Base Classes from 2005 (in VC9). StrmBase.LIB. A coworker thinks that this is the problem, but I don't think so. Just to be sure, how would I go about making sure that I had a good LIB in StrmBase.LIB?

Also, I'm not sure I understand your question. I had VC6 installed on my machine but never used it. Then I installed VC 9. The projects were built in VC6 on another machine.  I'm loading them in VS 2008 (they were created in VS 2003).  I really haven't rebuilt anything except for the DirectShow BaseClasses.

Avatar of jj_30jj_30

ASKER

Ah ok, one project compiles in Debug but not in Release.  

Free T-shirt

Get a FREE t-shirt when you ask your first question.

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


Avatar of jj_30jj_30

ASKER

Also, everything seems to be properly pointed to VC 9.
INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE;E:\Program Files\Microsoft SDKs\Windows\v6.1\include;
LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;E:\Program Files\Microsoft SDKs\Windows\v6.1\lib;
LIBPATH=Framework32\;Framework32\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;

Open in new window


ASKER CERTIFIED SOLUTION
Avatar of jj_30jj_30

ASKER

Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.

It is increditable that MS still isn't able to handle spaces in the paths of the environment variables.

Since I have grown up with DOS 8.3 filenames, I never use these silly path defaults with huge names and spaces between (for example my folder is d:\vc8) That may have prevent me from errors like the one you experienced ;-)

Avatar of jj_30jj_30

ASKER

MS is a MARKETING company ... not a software company ;)

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.

Editors IDEs

Editors IDEs

--

Questions

--

Followers

Top Experts

Development in most programming languages is frequently done with an editor or integrated development environment (IDE). An IDE is a software application that provide comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. XCode, Visual Studio, Adobe Dreamweaver and Eclipse are some of the more popular development tools, but an editor or IDE can be anything from simple text editors to sophisticated programs. Related topics: All programming and development language, database and web based content management systems topics