|
I am developing application which has to use third party dll,(for scanning)who only has described exported functions with function definition.
After I developed a application,which gives proper result but it gives assertion in debug mode at each and every call of function imported from dll. Following is assertion.
"The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention."
And after completion of process (scanning) application terminates.
I read articles from google,msdn and included __stdcall ,WINAPI ,combination
but error comes as it is. In release mode assertion does not come.but application crashes everytime. I cannot debug it as application is terminating after passing end of function call. Only all it shows in debug is access violation and all binary code.
|| ART OF LIVING ||
|
|
|
|
|
Hi
I have a dll application, which was compiling/linking fine and working correctly. I have to add a function to say class B.cpp/B.h which is similar to another function in another class say A.cpp/A.h. So I copied the function from A and made changes and added it to B. When i compiled it, there was a undeclared identifier error on a function. I checked where the function was defined and added
#include xyz.h on the top of the B.cpp.
When i compiled it now, it gave me lots of LNK2005 error with message "already defined in B.obj". I worked mostly in C#, so have on idea of this linking issue. Most of the google searches ask me to change project settings, which is not solving the problem.
Regards
Shajeel
|
|
|
|
|
Its very simple.
Project - > settings
Go to linker tab.
In linker tab project options edit box at end , just add
-------> /FORCE:MULTIPLE
Press ok.
I hope your problem will be solved.
|| ART OF LIVING ||
|
|
|
|
|
I am using VS 2002, can you tell me settings for that as i don't have any Project -> settings options here.
Regards
Shajeel
|
|
|
|
|
I am sorry I am using vc 6.0 only.
|| ART OF LIVING ||
|
|
|
|
|
Hello,
I have a question in the same regard. Just now I tried what you suggested /FORCE:MULTIPLE since I was getting Linker error saying 'already defined'.
Now because the settings are changed I get warnings saying that the 'x identifier already defined in MainFrm.obj; second definition ignored'
So should I stick on to these new settings because even I tried all of the following for my identifier consts file
#pragma once
#ifndef
#define
#endif
But none of the above worked.With your suggestion the errors are transferred to warnings.
What exactly this /FORCE:MULTIPLE do?
Thanks
Prithaa
|
|
|
|
|
Force multiple just ignores second definition with same name.
It is generally risky for very big projects in VC++. But I never found it that risky.
|| ART OF LIVING ||
|
|
|
|
|
Hello,
Thanks,
For now my problem is solved.I'll keep this in mind.
Bye
Prithaa
|
|
|
|
|
prithaa wrote: What exactly this /FORCE:MULTIPLE do?
See here.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
/FORCE:MULTIPLE?
Just adding a function to another class shouldn't give new linker errors,
unless you never define the function.
Did you copy the function and not change the scope resolution stuff?
With namespaces and classes (C++!) there shouldn't ever be multiple
definitions.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hello,
Because of this FORCE:MULTIPLE my linker errors "already defined in another class' have become warnings so is that fine?
I had tried using
#pragma once
#ifndef
#define
#endif
but none of them worked
Thanks
Prithaa
|
|
|
|
|
I'm just suspicious -
What is defined twice in two different classes ? Is this really what you want?
Hiding it with a linker option may not be the best solution
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I am trying to expose bitmap from active x control.
I am trying to expose BYTE pointer from active x control.
Can anyone give some suggestions
S.Yamini
|
|
|
|
|
How can data be transferred into excel sheet 'row and column-wise' the way we do in list control?? My first row consists of fixed column names
|
|
|
|
|
For this bubbdy you have to use COM and you have to import some of the library files into your project like this below
#import "D:\Program Files\Microsoft Office\Office\mso97.dll" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")
#import "D:\Program Files\Common Files\Microsoft Shared\VBA\vbeext1.olb" no_namespace
#import "D:\Program Files\Microsoft Office\Office\excel8.olb" no_auto_exclude rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces named_guids rename_namespace("EXL")
and after that use this link
http://msdn2.microsoft.com/en-us/library/aa155776(office.10).aspx[^]
Regards,
Pankaj Sachdeva
"There is no future lies in any job"
"but"
"future lies in the person who holds the job"
|
|
|
|
|
Hi all!
I use 2 references from .NET Framework:
1. System::Xml (for parsing XML documents and getting data from it)
2. System::Convert (for converting data gained from parsing to my type)
When i use absolutely any Convert method - my app is fall!!! Anyplace to use - class, function, main() - it's fall!
When i use in WinMain app
<br />
System::String^ myString = "String to Convert";<br />
wchar_t myData = System::Convert::toChar(myString);<br />
App is fall, but when i use it in console app - it works fine!
What's problem???
|
|
|
|
|
Ooops. Sorry! Wrong forum!
|
|
|
|
|
Hi Guys,
Would you be able to help me find the code for a program that finds dead links and orphan file in a webpage developed in pure HTML. Actually, its my project for my course. I have tried for weeks and code project is my last hope.......
Thanks
|
|
|
|
|
Have you seen this, or this?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Please help.
Thanks in advance.
Max
|
|
|
|
|
You can use WM_SETFONT/CWnd::SetFont() to set a window's font at runtime.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you Mark.
It seems to be a stupid question. Mmmmm...
Max
|
|
|
|
|
min_2_max wrote: It seems to be a stupid question.
No. Maybe a stupid answer though.
Did you get it working?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
There seems still to be some problem.
Max
|
|
|
|
|
Lets say I have 2 classes derived from the same base. Within the base I want to have a private member. But, when one derived type is passed to another, I want that instance to be able to gain access. ie...
class Base
{
protected:
int iSomeVal;
}
class A : public Base
{
void Copy( Base* pBase )
{
iSomeVal = pBase->iSomeVal;
}
}
class B : public Base
{
}
main()
{
A foo;
B bar;
foo.Copy( &bar );
}
|
|
|
|