|
You could try something like this:
#include <math.h>
const double g_PI = 4*atan(1);
Steve
|
|
|
|
|
So the PI is hidden somewhere else?
system
|
|
|
|
|
I don't think it's got it anywhere. M_PI from math.h is a non-standard extension I believe, and it's not present in MSVC6 (I just looked).
Steve
|
|
|
|
|
#define _USE_MATH_DEFINES
#include <math.h>
modified on Friday, August 8, 2008 9:33 AM
|
|
|
|
|
I have a client/Server program, when clinet add to above 500, Our some computer that client installed have a "TCP/IP stack full" error,and this computer don't Communicate with the outside.
Why have this problem,please help we. thanks!
|
|
|
|
|
for the code block below, if the actual object pointed to by the pointer passed to the function is of class B, the the cast would throw an exception? thanks
class B { };
class C : public B { };
class D : public C { };
void f(D* pd) {
C* pc = dynamic_cast<c*>(pd);
}
----------------------------------------------------------
"unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep" - my daily unix command list
|
|
|
|
|
No exceptions are throw what dynamic_cast ing pointers. Also note that no cast is needed in your code, much less a dynamic one: a D is a C .
Steve
|
|
|
|
|
yes i know it is an implicit cast (upcast) but what i would like to know is the case when the actual object being pointed to by pD is not a D but B? don't have compiler at the moment.
----------------------------------------------------------
"unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep" - my daily unix command list
|
|
|
|
|
Since the method takes a pointer to a D an attempt to call the method with a pointer to B will not compile.
Steve
|
|
|
|
|
am not saying inside the function a method is called ( i know this may not have a practical purpose as to have the object but not use it) just for the sake of argument those are the only lines in the function. not sure but IIRC
*if the actual POINTER is not of type being cast to, it returns a void?
*if the actual object is not of type being cast to, it is okay as long as no method of that object is called (if it is called it results in a compile time error?
----------------------------------------------------------
"unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep" - my daily unix command list
|
|
|
|
|
swjam wrote: for the code block below, if the actual object pointed to by the pointer passed to the function is of class B, the the cast would throw an exception? thanks
This will work fine and won't throw any exception.
If you're facing some kind of exception, it may be due to this - if you do Base to Derived casting and if RTTI is not enabled, then you'll face an un-handled exception.
Have a look at here too - http://weseetips.com/2008/06/30/dynamic_cast-throws-unhandled-exception-during-reverse-polymorphism/[^]
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Hi all,
I am mew to vc++ environment, in my application i want to get the
currently selected system language so that i can pick the corresponding resource dll for internationalisation.
I tried using
GetSystemDefaultLangID() GetSystemDefaultLCID()
but both resulted in English as the answer
though i change the current language in the system to french,dutch I am getting the same answer as English.
Can anybody suggest me the way to extract the current language set in the system instead of this default language.
|
|
|
|
|
Did you try GetUserDefaultLangID() ?
Documentation here.
Hope this helps,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
hey thats great it worked with GetUserDefaultLangID() but wats the difference between both of these functions??????
Anyways thanks for the info....
|
|
|
|
|
I assume GetUserDefaultLangID() is the current language set but GetSystemDefaultLangID() is the default OS language (possibly the original language of the OS?) I'm not too sure, but glad it works
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
hariakuthota wrote: though i change the current language in the system to french,dutch I am getting the same answer as English.
It's inevitable that you speak English.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
After installing VS 2008,
in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include , there is ddraw.h ,
but where is the correspond .lib file?
There is no ddraw.lib in C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib .
system
|
|
|
|
|
You need the DirectX SDK[^].
The installer will add the appropriate paths to your Visual Studio settings,
but you may want to check to make sure they're at the top of the paths list.
You want to use the DirectX SDK headers/libs, not the ones that come with
the Visual Studio SDK.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I've tried DirectX SDK, fine.
But why the ones that come with VS2008 can't be used?
system
|
|
|
|
|
followait wrote: But why the ones that come with VS2008 can't be used?
AFAIK, everything you need isn't included, like the lib file you needed.
Some of the headers are there (probably to get certain things to compile)
but you need the actual SDK to get the full, up-to-date package.
There's many add-on SDKs like that.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It would be a reason.
Thanks.
system
|
|
|
|
|
Hello,
I'm trying to recreate a problem that I'm having in another project and have created a small overly simple project to experiment with. That being said, I'm being blocked by what seems like a really silly problem.
So, I have two classes: ClassA and ClassB. ClassB's constructor takes a pointer to ClassA as a parameter for later use. The compiler seems not to mind that, however it does not like when I try to use the pointer that is passed. Here's some code:
#pragma once;
#include <iostream>
using namespace std;
#include "ClassB.h"
class ClassB;
class ClassA {
public:
ClassA () {
this->b = new ClassB(this);
}
void printer() {
cout << "Hello world from A!\n";
}
private:
ClassB* b;
};
And a little more:
#pragma once;
#include <iostream>
using namespace std;
#include "ClassA.h"
class ClassA;
class ClassB {
public:
ClassB(ClassA *a) {
this->ca = a;
cout << "Constructor B \n\n";
ca->printer();
}
private:
ClassA *ca;
};
and finally a main to polish it off:
#include <windows.h>
#include <iostream>
using namespace std;
#include "ClassA.h"
#include "ClassB.h"
void main() {
ClassA a;
Sleep(10000);
}
I get two errors with this setup. They both point to ca->printer(); in the ClassB.h file. They are Error 1 error C2027: use of undefined type 'ClassA' classb.h 14 and Error 2 error C2227: left of '->printer' must point to class/struct/union/generic type classb.h 14 .
Oddly enough, this isn't even the problem I'm trying to recreate from my larger project (I don't have this problem there). I'm actually trying to recreate an access violation on the call to the constructor of the class that ClassB represents (then the program continues, but it never executes the constructor).
Anyway, I'll settle for figuring out what the silly mistake I'm making is that's blocking the compiler from finishing the job.
Thanks for your help!
|
|
|
|
|
You will need to move some code into a cpp file (or two): to be able to use a pointer for a class, the compiler needs to fully know the class. In your case, both classes are referencing each other and using the pointers in the header file. It's a snake that bites its own tail.
|
|
|
|
|
Thanks for the tip, you were correct. Now I get to go back to recreating my real problem... the phantom access violation!
|
|
|
|
|
I have a x.lib and x.dll. its a static dll. Now i am using functions exported in this dll by loading this dll and calling functions thro GetProcAddress API.
Now i don't want to load dll instead i want to use x.lib, Please let me know how i can call those functions by using x.lib
|
|
|
|