|
See here.
"Money talks. When my money starts to talk, I get a bill to shut it up." - Frank
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
I have just taken on C++ and have been thrown in at the deep-end with the developer we had going back to china.
I understand the syntax and structure of c++ but am not good at the debugging lark being new...
I have these error messages when i build...
fatal error LNK1120: 9 unresolved externals
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol @__security_check_cookie@4
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol __imp___resetstkoflw
error LNK2001: unresolved external symbol __SEH_epilog
error LNK2001: unresolved external symbol __SEH_prolog
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >(char const *)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) referenced in function $L122582
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >(void)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) referenced in function $L122582
error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "unsigned int __stdcall ATL::_AtlGetThreadACPFake(void)" (?_AtlGetThreadACPFake@ATL@@YGIXZ)
error LNK2019: unresolved external symbol ___security_cookie referenced in function "unsigned int __stdcall ATL::_AtlGetThreadACPFake(void)" (?_AtlGetThreadACPFake@ATL@@YGIXZ)
error LNK2019: unresolved external symbol ___security_cookie referenced in function "void * __stdcall InterlockedExchangePointer(void * *,void *)" (?InterlockedExchangePointer@@YGPAXPAPAXPAX@Z)
error LNK2019: unresolved external symbol __ftol2 referenced in function "public: unsigned char __thiscall CDBField::AsChar(void)const " (?AsChar@CDBField@@QBEEXZ)
error LNK2019: unresolved external symbol __imp___localtime64 referenced in function "public: struct tm * __thiscall ATL::CTime::GetLocalTm(struct tm *)const " (?GetLocalTm@CTime@ATL@@QBEPAUtm@@PAU3@@Z)
error LNK2019: unresolved external symbol __imp___resetstkoflw referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
error LNK2019: unresolved external symbol __SEH_epilog referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
error LNK2019: unresolved external symbol __SEH_prolog referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
It's obvious that there is something missing and it's probably a library. I have spent hours now trying to decipher what by fumbling around looking for librarys on my machine which match the above in someway and searching the errors on the internet. Now however, i am losing the will to live and would greatly appreciate it if anyone could shed any light on what is going on....
Thanks ever so much
God help me because i am no longer free...
-- modified at 9:57 Thursday 10th August, 2006
|
|
|
|
|
For classes you use listed in MSDN, take a look at the "overview" which will list the requirements. For instance, CTime says it requires the header "atltime.h". Some will list required .lib's etc...
For classes not in MSDN, you should have some available help files to let you know what is needed to use them.
|
|
|
|
|
The security cookie stuff sounds like it might be to do with buffer overrun detection, a feature of later versions of VC++ (ie not v6). It's worth checking to see
(a) what runtime libraries you're trying to use (Multithreaded or Multithreaded DLL) and
(b) what your /GS (buffer security) settings are
and trying to make sure they are consistent.
Also check out this link[^] which might give you a little more help.
Steve S
Developer for hire
|
|
|
|
|
Thanks very much it is now down to 15 errors instead of 25. Yahoo... life will slowly returning.... Any ideas on the below
SimpleExtension error LNK2001: unresolved external symbol @__security_check_cookie@4
SimpleExtension error LNK2001: unresolved external symbol ___security_cookie
SimpleExtension error LNK2001: unresolved external symbol __imp___resetstkoflw
SimpleExtension error LNK2001: unresolved external symbol __SEH_epilog
SimpleExtension error LNK2001: unresolved external symbol __SEH_prolog
SimpleExtension error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >(char const *)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) referenced in function $L122575
SimpleExtension error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >(void)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) referenced in function $L122575
SimpleExtension error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "unsigned int __stdcall ATL::_AtlGetThreadACPFake(void)" (?_AtlGetThreadACPFake@ATL@@YGIXZ)
SimpleExtension error LNK2019: unresolved external symbol ___security_cookie referenced in function "unsigned int __stdcall ATL::_AtlGetThreadACPFake(void)" (?_AtlGetThreadACPFake@ATL@@YGIXZ)
SimpleExtension error LNK2019: unresolved external symbol __ftol2 referenced in function "public: unsigned char __thiscall CDBField::AsChar(void)const " (?AsChar@CDBField@@QBEEXZ)
SimpleExtension error LNK2019: unresolved external symbol __imp___localtime64 referenced in function "public: struct tm * __thiscall ATL::CTime::GetLocalTm(struct tm *)const " (?GetLocalTm@CTime@ATL@@QBEPAUtm@@PAU3@@Z)
SimpleExtension error LNK2019: unresolved external symbol __imp___resetstkoflw referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
SimpleExtension error LNK2019: unresolved external symbol __SEH_epilog referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
SimpleExtension error LNK2019: unresolved external symbol __SEH_prolog referenced in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
SimpleExtension fatal error LNK1120: 9 unresolved externals
"If i was king cigarettes would be free."
|
|
|
|
|
It seems that your program needs to lib files
|
|
|
|
|
Do you have any idea which ones?
Thanks
|
|
|
|
|
well first i guess your code needs to lib file are you checking for this and i guess another thing
but im not sure your problem is it.
|
|
|
|
|
I declared WindowProc function in public section:
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
}
But I receive following errors:
c:\ABE\DTS\Form1.h(51) : error C2146: syntax error : missing ';' before identifier 'CALLBACK'
c:\ABE\DTS\Form1.h(51) : error C2146: syntax error : missing ';' before identifier 'WindowProc'
c:\ABE\DTS\Form1.h(51) : error C2501: 'DTS::Form1::CALLBACK' : missing storage-class or type specifiers
c:\ABE\DTS\Form1.h(51) : error C2061: syntax error : identifier 'HWND'
c:\ABE\DTS\Form1.h(84) : warning C4183: 'WindowProc': missing return type; assumed to be a member function returning 'int'
How shall I solve it????
|
|
|
|
|
Hmm. You don't have HWND defined. This would imply that you haven't included the windows.h header...
Steve S
Developer for hire
|
|
|
|
|
Thanks...
I added windows.h and ifndef undef to my code and make it work now.
|
|
|
|
|
I declared WndProc() as static public function in a form class. It needs to access non-static member function when wparam is DBT_DEVICEARRIVAL.
This non-static function will modify the form panel displaying content. But static member function can only access other static member functions.
How shall I solve this problem???
|
|
|
|
|
(Disclaimer: This is for VC++6.0 and for MFC, and I'm pretty sure that this is not exactly what you use. Anyway, it may give you some ideas.)
(Disclaimer: Untested code)
You have the window handle as a parameter to WndProc, so it's easy to get the MFC C++ class corresponding to the window:
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if (wparam == DBT_DEVICEARRIVAL) {
CYourWnd* wnd = (CYourWnd*)CWnd::FromHandlePermanent(hWnd);
if ((wnd != NULL) && (wnd->IsKindOf(RUNTIME_CLASS(CYourWnd))) {
}
}
}
More on-beat C++ programmers will probably object to using the old-style typecasts, but it's safe when checking wnd for NULL and checking the runtime class.
Cheers
Steen.
"Are you gonna check your makeup when you're done whining?" John Simmons, 05/31/2006
|
|
|
|
|
Hi I've got a pretty curious situation occuring in a thread message pump i've written.
The program I've written basically involves a DDE Server passing on messages it receives to a seperate thread using PostThreadMessage with a registered windows message. Two strange things occur: Firstly, whenever a message is sent, two extra messages passing through the pump cause an exception. The messages causing the problem have a decimal value of 1000 (not a message I'm familiar with). Secondly, only ever other message gets through (though this is probably caused by the exceptions).
It's worth noting that this code resides within an ActiveX control, written with VS2003.
<br />
const UINT TM_ON_DDE_MESSAGE = ::RegisterWindowMessage( _T("TM_ON_DDE_MESSAGE"));<br />
<br />
------------------------------------------<br />
::PostThreadMessage(gdwThreadId, TM_ON_DDE_MESSAGE, (WPARAM) pInToWindow, 0); <br />
<br />
------------------------------------------<br />
<br />
gdwThreadId = 0;<br />
ghThread = ::CreateThread( <br />
NULL,
0,
DDEServerThreadFunc,
this,
0,
&gdwThreadId);
<br />
char szMsg[50];<br />
if (ghThread == NULL) <br />
{<br />
wsprintf( szMsg, "CreateThread failed. Unable to receive DDE messages from the Acrobat search plugin" ); <br />
AfxMessageBox( szMsg, MB_OK );<br />
}<br />
<br />
------------------------------------------<br />
<br />
WORD CDDEServer::OnWndThread()<br />
{<br />
MSG msg;<br />
m_keepThreadLoopGoing = TRUE;<br />
while ( ::GetMessage( &msg, NULL, 0, 0 ) != 0 && m_keepThreadLoopGoing) {<br />
if ( !OnThreadProcess( msg.message, msg.wParam, msg.lParam ) ) {<br />
::DispatchMessage( &msg );<br />
}<br />
}<br />
return static_cast<DWORD>( msg.wParam );
}<br />
<br />
BOOL CDDEServer::OnThreadProcess( UINT uMsg, WPARAM wParam, LPARAM )<br />
{<br />
bool bProcessed = true;<br />
if (uMsg == TM_ON_DDE_MESSAGE)<br />
{
if (wParam) {<br />
CCriticalSection threadsafe;<br />
threadsafe.Lock();<br />
OnRunDDECommand( (WINDOW_LUGGAGE*) wParam);<br />
threadsafe.Unlock();<br />
}<br />
bProcessed = true;<br />
} else {<br />
bProcessed = false;<br />
} <br />
return bProcessed;<br />
}
Any ideas or insights would be very welcome.
Thanks in advance
Tom
|
|
|
|
|
Maybe the (WINDOW_LUGGAGE*)wParam pointer in OnThreadProcess is not more valid after you post your custom message? The PostThreadMessage function returns before your receiver processes your message.
|
|
|
|
|
Thanks, I'll look into that.
Tom
|
|
|
|
|
The exception is occuring at the call to ::DispatchMessage( &msg );
curiouser and curiouser.
|
|
|
|
|
MSDN documentation for PostThreadMessage function says that "Messages sent by PostThreadMessage are not associated with a window. As a general rule, messages that are not associated with a window cannot be dispatched by the DispatchMessage function". Maybe you should not call DispatchMessage ?
|
|
|
|
|
Thank you, would you suggest something like this then
<br />
while ( m_keepThreadLoopGoing ) {<br />
if (::PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE) != 0 ) {<br />
if ( !OnThreadProcess( msg.message, msg.wParam, msg.lParam ) ) {<br />
::GetMessage( &msg, NULL, 0, 0 );<br />
}<br />
}<br />
}<br />
Thanks alot
Tom
|
|
|
|
|
My appologies, there should not be a "!" infront of OnThreadProcess
|
|
|
|
|
I want to get the font metrics at runtime for the predefined fonts.
Is it possible. If yes please show me the way.
Thank you
KIRAN PINJARLA
|
|
|
|
|
See there are many api available for get the font metrics.
GetOutlineTextMetrics
GetTextMetrics
|
|
|
|
|
|
hi guys this is rocky,,,,,,
i cant understand one thing please help me to understand that........
check the code .............
// Initialize TAPI
hr = pTapi.CreateInstance((CLSID_TAPI));
hr = pTapi->Initialize();
// Look for the requested line
pEnumAddress = pTapi->EnumerateAddresses();
while ( pEnumAddress->Next(1, &pAddress, &ul) == S_OK )
{
name = pAddress->AddressName;
//if ( name == bstrLine )
//break;
pAddress.Release();
pAddress = 0;
}
// If the line was found, then make a call
if ( pAddress )
{
pCall = pAddress->CreateCall(bstrNumber,
LINEADDRESSTYPE_PHONENUMBER,
TAPIMEDIATYPE_AUDIO);
// Make the call
hr = pCall->Connect(true);
i think what this is doin there are so many numbers are here...........
i want to call only one no example 123456789 lests its hard coded how can i call this no with the above code what change i have to make for this
thnx in advance guys
Best Regards
Rocky
|
|
|
|