|
Thanks for response. Actual I had a non ATL C++ application, to which I need to add Text to speech(https://msdn.microsoft.com/en-us/library/jj127898.aspx[^]), and hence I was trying to add
#include <atlbase.h>
extern CComModule _Module;
#include <atlcom.h>
And there by started with this issue.
|
|
|
|
|
Sir, I need to create "string" as an output using my formatted data.
To achieve this I did make use of "sprintf" function.But when building a solution using visual studio I get "C4996" error.
Here is the error message which I get:
Quote: Severity Code Description Project File Line
Error C4996 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 155
to disable all depreciation I've used this preprocessors as per my compiler's suggestion
#define _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_WARNINGS
but still the error persists.I have also decreased the warning level.
Kindly help me.
|
|
|
|
|
_CRT_SECURE_NO_WARNINGS must be defined before the header files that use the macro are included. So put it on top of your source file before including any header files.
To set it for all files of a project, add it on top of stdafx.h (when using that) or add it to the preprocessor definitions of your project settings (Configuration Properties - C++ - Preprocessor - Preprocessor Definitions).
Decreasing the warning level does not help here because the warning is treated as an error. To treat them as warnings, set SDL Checks to No in your project settings (Configuration Properties - C++ - General).
Another option is disabling the warning by using a pragma statement:
#pragma warning(disable : 4996)
This is useful when using those deprecated functions only a few times because they can be disabled on function level:
#pragma warning(disable : 4996)
void SomeFunc()
{
}
#pragma warning(enable : 4996)
|
|
|
|
|
Thank you Sir for your kind help.It works after defining "_CRT_SECURE_NO_WARNINGS " before the header files.
|
|
|
|
|
A better solution would be to do what the message says and use the sprintf_s function to create formatted strings. Or even to use the STL libraries if this is C++.
|
|
|
|
|
Thank you Sir for your kind help.
|
|
|
|
|
Hi
I am a bit confused about the double pointer.
I would like to pass it to a function and change the pointer value:
static int GetValue(int** hello)
{
*hello = &Something;
}
int* pointer = NULL;
GetValue(&pointer);
int** pointer = NULL;
GetValue(pointer);
To me they seem like the same thing.
|
|
|
|
|
elelont2 wrote: To me they seem like the same thing. No, they are totally different.
Case 1:
You create a pointer that will point to an integer variable, and pass its address to the function. The function then stores the address of a variable inside the pointer. On return the pointer now points to the variable, and the variable contains a value.
Case 2:
You create a pointer that will point to a pointer but is currently NULL. So when you pass it to the function the function gets a NULL value.
Simply put, in case 1, hello points to the address of pointer, in case 2, hello contains NULL. If you step through the code with your debugger it should become clear.
|
|
|
|
|
Hi all,
I have an MDI application under MFC. When I click on a menu I have a dialog based view (CDialog) which contains a button. What I need is when I click the button I want to resize my Dialog and set it to a new position.
I tried the MoveWindow, SetWindowPos but nothing changed. I think that those functions don't work with MDI or I missed sthing.
So people: How can I resize and move my Dialog to a new location point.
Thank you in advance.
"The Only Limit Is Only Your Imagination."
|
|
|
|
|
Moving the dialog by code should work like moving it by mouse. This does not depend on the application type.
Resizing is disabled for CDialog derived classes. To be resizable the window must have a different style (you may search for resizable dialogs). But it usually requires a lot of code to implement resizing with dialogs. It may be simpler to create your own window class that is not CDialog based (especially when it should be non-modal).
[EDIT]
You may have a look at these CP articles: CResizableDialog[^] and ResizableLib[^].
modified 8-Dec-15 5:40am.
|
|
|
|
|
Thank you, works like a charm.
"The Only Limit Is Only Your Imagination."
|
|
|
|
|
Hi,
I am just to trying to customize folder selection dialog by deriving a class from CFolderPickerDialog in VS2012. But VS2012 Wizard does not provide the option to add class with base class from CFolderPickerDialog. The base class list in Add Class wizard does not contain this class CFolderPickerDialog. Any idea why this base class is missing?
Also i tried manually added a derived class with CFolderPickerDialog as base class with correct message map related maros, function etc. But still i cannot get WM_TIME event handler, OnInitDialog is getting called in derived class. If anybody having any ides pls let me know.
Thanks,
Prasanth
|
|
|
|
|
The CFolderPickerDialog class inherits from CFileDialog[^], you should check there for details on customisation.
|
|
|
|
|
|
I have a video which I want to split into 4 parts according to the coordinate values while transmitting it from 1 device to another.
So how can I do that? Please someone help me.
|
|
|
|
|
|
I've read the following statement and I cannot understand something within it "In all binary trees, there are at most 2^i nodes at level i + 1" what I cannot understand is that tree's levels start at level 0, however, if we apply what is written in this statement there will be no level 0 at all as it says level i + 1 which mean 0 + 1 = level 1, 1 + 1 = level 2, etc. So is this statement wrong?!!! or I am missing something?!!!
|
|
|
|
|
Where did you read that?
Here[^], for instance, is stated: In general, each level of a binary tree can have, at most, 2N nodes, where N is the level of the tree
|
|
|
|
|
I read it in 2 books "Data Structures Through C in Depth" and "Data Structures and Algorithms in C++, 4th Edition" and even the link you gave to me saying "The root of the tree, therefore, is at level 0" which means that tree's level starts at 0. So I am confused because those books also saying that tree's level starts at 0?!!!
|
|
|
|
|
Well, that's correct if you say 2N (instead of 2(N-1)) as maximum number of nodes at level N.
|
|
|
|
|
I know it is correct to say 2^N, however, to say for level N+1 is what makes me confused because tree's level starts at level 0 which mean that N = 0 so if we apply the above statement it will be 2^0 for level 0 + 1 which means 1 node for level number 1 I hope you get what I meant
|
|
|
|
|
I know it is correct to say 2^N, however, to say for level N+1 is what makes me confused because tree's level starts at level 0 which mean that N = 0 so if we apply the above statement it will be 2^0 for level 0 + 1 which means 1 node for level number 1 I hope you get what I meant.
|
|
|
|
|
* Level 0 2^0 = 1 node
/ \
/ \
/ \
* * Level 1 2^1 = 2 nodes
/ \ / \
* * * * Level 2 2^2 = 4 nodes
It is 2<sup>N</sup> for level N .
If you find written 2<sup>N-1</sup> then levels are numbered differently, starting from 1 (instead of 0 ).
|
|
|
|
|
Thanks for your reply I just get confused a little bit as some books state that level start at 0 and others state that level starts at 1. We need a unified solution between those authors
|
|
|
|
|
You are welcome.
|
|
|
|