|
When writing C, you should probably try to declare all variables at the beginning to make sure you have compatibility with all compilers since that wasn't allowed until later on (2000?).
http://en.wikipedia.org/wiki/ANSI_C[^]
|
|
|
|
|
|
MS isn't concerned with keeping up with the latest C specs, so you'll need to avoid C99-specific features.
--Mike--
Dunder-Mifflin, this is Pam.
|
|
|
|
|
Yeah, I figured that out. Do you happen to know what (if any) standard they do conform to? I know there are several through the years.
|
|
|
|
|
If you look at the link I provided before, it states that they implemented "Microsoft Visual C++ (C90. A few features of C99)". I'm guessing you would have to dig deep to figure out what they did and didn't implement.
|
|
|
|
|
Oh, there it is. I don't know how I missed that before
|
|
|
|
|
Another difference that's easy for C++ devs to forget is the fact that C doesn't support parameters with defaults.
Example:
Valid in C++, not valid in C
int GetFoo(int HowMany=1){}
|
|
|
|
|
That's OK by me. I don't recall ever using defaults... not since college 15 years ago anyway when some homework assignment was specifically targeted at it. I do a fair amount of work in C# too, which doesn't allow defaults, so I'm used to it.
|
|
|
|
|
I use C++ A LOT, so I do forget that one sometimes... and as you've noticed, depending on the compiler (and settings), it may or may not allow it... pain in the butt!
|
|
|
|
|
First, I know this question isn't exactly ATL/WTL/STL. I see no category at all in CodeProject.com that really fits this question, so this is as close as I could get.
I'm trying to configure a project to accept only ANSI-C syntax. I have read articles that say this can be accomplished by using the /TC and /Za switches. However, I don't see where in the project properties to set them. From MSDN:
1. Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.
2. Click the C/C++ folder.
3. Click the Advanced property page.
4. Modify the Compile As property.
PROBLEM: When I open the Project Property pages, there is *NO* "C/C++ folder". Can anyone on this forum be more helpful than MS's own documentation? Thank you.
|
|
|
|
|
Never mind. I found the issue. Apparently the C/C++ property page doesn't show up until you have added at least one source code file. I was trying to configure it before adding any source code files. Seems kind of lame, but there we have it.
I am leaving this post up to hopefully help someone else who might run into the same problem.
|
|
|
|
|
This is probably by design. If you have an empty project then there are no C/C++ properties to show. After all, you may be intending to create the project with a different language, or even no language; Visual Studio cannot second guess your intentions.
I must get a clever new signature for 2011.
|
|
|
|
|
Well this is a tangent, but I totally disagree. The project was created by using the "Empty Project" template under the C++ templates list in the new project dialog... That implies the user intends to make a C++ project, and so at least those settings could be applied as a starting point. I mean, if I am browsing the C++ templates it's not because I intend to create a VB project or something. At least give me the minimum C++ settings as a starting point.
|
|
|
|
|
OK, maybe you should complain to Microsoft.
I must get a clever new signature for 2011.
|
|
|
|
|
I actually agree with you here... it is normally considered bad practice in GUI design to disable options by making them not visible. It creates confusion such as this, it is better to make to make the option inaccessible but still visible.
|
|
|
|
|
Xpnctoc wrote: I see no category at all in CodeProject.com that really fits this question
Here is the link to the forum for Visual Studio[^] questions.
I must get a clever new signature for 2011.
|
|
|
|
|
|
I need to access a .NET web service in a native C++ application. People have suggested to use gSOAP (which is costly for a commercial license) and I have found articles where the same can be done using SOAP tool kit (which is no longer supported by microsoft)
To use SOAP toolkit method MSXML should be installed on the PC, and ours is a portable application we cannot afford it. I looked at other alternatives and found the following article - http://support.microsoft.com/kb/908574[^] But I am getting the following errors:
error C2065: 'IHelloWorldPtr' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'ptrHW'
error C3861: 'ptrHW': identifier not found
error C2065: 'ptrHW' : undeclared identifier
error C2227: left of '->SayHelloWorld' must point to class/struct/union/generic type
I am new to COM and .NET can somebody help to resolve the issue. And is this approach the write way to access .NET web services?
Thanx in advance
|
|
|
|
|
|
I am using Softing OPC client which connects to OPC driver but if the loading takes more than 2 mins it's automatically shutdown the driver please suggest me something.
Tested with other clients also but the same problem persist.
Thanks in advance!!!!
Truth Is The Simplest !!!!
|
|
|
|
|
Does this have something to do with ATL, WTL or STL?
I must get a clever new signature for 2011.
|
|
|
|
|
Yes ,
It's COM server and problem is with CoCreateInstance() if it takes more than 120 sec it automatically shutdown the COM based server.
Truth Is The Simplest !!!!
|
|
|
|
|
That sounds like an issue for the server. I would suggest you try the OPC website for more information, unless you have the source code and can show where the problem is.
I must get a clever new signature for 2011.
|
|
|
|
|
I have a app using ATL for both the COM and the Service pieces. I have recently had need to bring in some old code that archives itself via CArchive (MFC). I don't seem to be able to hack up the right choices/orders of headers for getting the ATL classes like CAtlServiceModuleT while still have the MFC class CArchive available.
The only docs I've found so far, deal with including the MFC bits first, then the ATL bits. But that defines _AFX, and so the ATL bits leave out items like CAtlServiceModuleT.
Is there some way to make ATL the "main" library and then pull in the MFC bits later? Short of #undef'ing too many things and/or pulling bits out of header files, etc.
Thanks,
CraigL
|
|
|
|
|
Hi,
I have downloaded OpenCV 2.2.0 distribution for visual studio 2010 and as i started programming with the opencv APIs under VS 2010 I faced a terrible problem.
cvSobel and cvLaplace functions always throw cv::Exceptions and also their exceptions could have not been handled with try ... catch blocks.
the provided error is: Unhandled exception at 0x7463b727 in App.exe: Microsoft C++ exception: cv::Exception at memory location 0x003bfb9c.
and here is my code:
IplImage* pImage = cvLoadImage("..\\Tulips.jpg");
IplImage* pImage1 = cvCreateImage(
cvSize(pImage->width, pImage->height),
pImage->depth,
pImage->nChannels
);
IplImage* pImage2 = cvCreateImage(
cvSize(pImage->width, pImage->height),
pImage->depth,
pImage->nChannels
);
cvSobel(pImage, pImage1, 0, 1, 2);
cvLaplace( pImage, pImage2);
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
cvShowImage("Image", pImage);
cvNamedWindow("Image1", CV_WINDOW_AUTOSIZE);
cvShowImage("Image1", pImage1);
cvNamedWindow("Image2", CV_WINDOW_AUTOSIZE);
cvShowImage("Image2", pImage2);
cvWaitKey(0);
please, help me if I am forgetting sth.
|
|
|
|