|
In VC6 when I use
std::abort(); I am geting an error "error C2039: 'abort' : is not a member of 'std'". But it compiles well in VS2010. I am seeing the definition of abort in both version of stdlib.h. What is the problem?
|
|
|
|
|
The problem is that stdlib.h does not define the std namespace, it is the standard C library header. You should include cstdlib for use of the std namespace features.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Even after including cstdlib, I am seeing the same error.
|
|
|
|
|
Difficult to guess without more information; take a look at the header file to see how it is declared.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Throw VC6 in the bin, it's long past its useby date.
Steve
|
|
|
|
|
Thanks. Yes, That's right! we are slowly moving to VS2010. But at this point of time we are in a situation to use
std::abort(); in both VC6 and VS2010. This compiles well in VS2010 but my concern is why its not in VC6. Any idea would be helpful.
|
|
|
|
|
Why not just use abort() ? Adding the namespace prefix buys you nothing.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Ok. Sorry for not explaining that the code piece 'std::abort()' is part of third party and we cannot modify it.
|
|
|
|
|
Then contact the third party and tell them to fix it. I assume that you have paid for this code in which case it is their responsibility to provide a fully working solution.
With the amount of information you have provided about this code it is difficult to make any better suggestions.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Thanks for your help.
I found a soultion to this problem.
#if _MSC_VER <=1200
namespace std
{
using ::abort;
}
#endif
This way we can make 'std' namespace to refer global abort(). It doesn't require to modify 3rd party.
|
|
|
|
|
Hi, Is there a way to print file inclusion stack/order in VC++6.0.
In VC10, we can print file inclusion stack in debug window using /showIncludes compiler switch. But same switch is not recognized in VC6.
|
|
|
|
|
hi every one this is my first post here in fact i'm confused little bit cause i got to finish a project that i haven't started yet i need to capture image with directshow
in fact i haven't understand directshow very well it's questions and pin ... difficult to grasp for the first time .
the second point if i need a window in which i have to put my components should i create it by hand (from scratch by code ) IVideoWindow ?? and what about list & button ??
let me know
|
|
|
|
|
mexmerou wrote: i haven't understand directshow very well There is nothing much we can offer except to study the documentation[^] and to use Google to search for samples and tutorials.
mexmerou wrote: the second point ... is not very clear, perhaps you could give some more detail about how your application will be built.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
DShow isn't as intimidating as it looks
You create an IFilterGraph, add the filters you want, then create a ICaptureGraphBuilder2, point it at the IFilterGraph, and ask it to RenderStream
You don't really have to worry about pins unless you intend to write your own source or transforms
As regards IVideoWindow, yes, create your own child window and point IVideoWindow at it
There are numerous examples kicking around
|
|
|
|
|
|
|
This is noit a valid question for the ATL forum, please try Collaboration & Beta Testing[^], or one of the "rentacoder" forums.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Sorry Richard,
It seems the mentioned forum is a better place for my question.
I tried to edit my post and move it to the other forum but I couldn't.
Isn't this possible?
Should I repost my question and delete this one?
Thanks,
Paul
|
|
|
|
|
I think only the administrators can move it. Just repost the entire message to the other forum, then edit the one here and replace the content with a note that you have moved it.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Hi All,
I want to covert a string to integer in MFC.Consider the string as char str[10]; and integer as int num; My case is as following:-
1) Suppose str = "10"
num should be = 10
2) Suppose str = "10.88"
num should be 0 or any invalid number so that we can identify that its not an integer but any other value.
3) Suppose str = "10ab"
num should be 0 or any invalid number so that we can identify that its not an integer but any other value.
Is there any direct API by which we can identify the above cases. I have tried atoi() but it returns the remaining integer value after removing the float or alphanumeric values.
Or
I have to try it by creating my own method.
|
|
|
|
|
You could use strtol() [^] and its variants, as it will give you a pointer to the character that stops the scan of the string. You can then check this character and decide what actions to take. I do not know of any MFC class that offers a more comprehensive solution, but a search of the MFC library should tell you.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Not sure if this is applicable to MFC, but the stringstream library will do this:
#include <iostream>
#include <sstream>
int main( )
{
std::string inString( "10.88" );
int outNum;
std::stringstream ss( inString );
ss >> outNum;
std::cout << "As Number [" << outNum << "]" << std::endl;
}
Sample output would be:
As Number [10]
|
|
|
|
|
This will not work, you cannot read a floating point variable and correctly store it in an integer variable.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
You could simply use atoi() to convert to an integer, then format that value to a string and compare to your original string.
Since you are not asking for anything super efficient or elegant, this should do the trick.
CString str = "10.88";
int nValue = atoi(str);
CString strValue;
strValue.Format("%d", nValue);
if (strValue != str)
{
nValue = 0;
}
Soren Madsen
|
|
|
|
|
CString str=10.27;
CString res = str.SpanIncluding(_T("0123456789"));
if(res == str)
{
int nValue = atoi(str);
}
else
{
MessageBox("string is not integer");
}
//Cheers
|
|
|
|