|
this is normal floating point behaviour when applied to computers.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
This how double works.
if you assign var to 2.0 it will be stored as 2.0
but when it will start use it will be presented as 1.999999999(9)
|
|
|
|
|
Hi folks, just wondering if someone could give me a hand with this. In my header file I have a struct as follows
typedef struct someStruct{
char stuff;
anotherStructure *moreStuff;
char [20] // Packet padding
}someStruct;
This is to simulate a packet message being sent in a Network Simulator and so I need it to be a certain number a bytes. Heres the catch though,the moreStuff is a pointer to the start of an array which can have any number of elements, say each being x bytes. Previously I had just being padding messages with an array of chars to get it up to the required size, but now I need the size to be: fixed size + (no element in array)*x, i.e. its variable. Any ideas how I might sort it that this structure would be of this variable size? The number of elements in the array is not found out until run time.
Thanks a million in advance for any help.
|
|
|
|
|
If you could have one more element in the moreStuff structure as like
struct morestuff
{
int[xxx];
int size;
}
and update the size at the run time and can access this size by the parent structure someStruct to copy the desired amount of data.
Hope it may help you some way
Regards
Anil Kumar
|
|
|
|
|
I think you will need to add another member to your someStruct struct to hold the size of the struct; you will set that value dynamically as needed.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
typedef struct tagRS
{
int nCount;
char szData[1];
} RS, *LPRS;
++++++++++
int nSizeYouNeedForData;
LPRS pMem = malloc(sizeof(RS) + sizeof(char)*nSizeYouNeedForData));
pMem->nCount = nSizeYouNeedForData;
memcpy(pMem->szData, From..., nSizeYouNeedForData);
// Keep in mind element in char szData[1];
// should be always last !
// Code below is WRONG and BAD
//typedef struct tagRS
//{
//char szData[1];
//int nCount;
//} RS, *LPRS;
// GOOD
typedef struct tagRS
{
int nCount;
char szData[1];
} RS, *LPRS;
|
|
|
|
|
Hi,
I just start working with visual with a big project... But Visual C++ can't load the project ressource file in the ressource view ... "Load failed" because "This file is already open in an editor" ... I don't find why. I look at the ".rc" file, I look at the "res\\*.ico", "res\\*.bmp", and "res\\*.rc2" references (...) I don't find where is the problem... Thanks a lot !
|
|
|
|
|
If you look at the "Window > Windows" menu, isn't it listed there?
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
... Yes it is, Marc. In this window, the "project.rc" file is listed.
|
|
|
|
|
and what happens if you close it ??? Could you now view it in the resource editor?
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
Ohhhh ... K !!! But it's crazy ! excuses - me, I just start with it... I'm used to Borland C++ builder! thanks a lot. sorry.
|
|
|
|
|
... Yes it is, Marc. In this window, the "project.rc" file is listed. ! I'm used with Borland C++ builder... It's going to change a little !!!! Thanks !
|
|
|
|
|
I don't know how it works on BC++ ... even that VC should have changed to a view of the rc file in text mode after poping the message "This file is already open in an editor". In my VC does it ... I should check my settings
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
i have a problem getting excel application address from registry. can someone help me in this regard
|
|
|
|
|
Respected All
Regards!
I have a CString object which has a value like
----------------------------------------
CString ss; // ss is already assigning to a string containing filename.
CString str=ss.find(0,4) //from this statment the str will be assign to a
//file name let say "david"(which is in DAT format).
pFile=fopen("C:\\str.dat","r");//here str=david
//but here i cant write like "david.dat"nor write like "str.dat " in
//above statment.
------------------------------------------
so how i use the file name (david) while open it.
i think it s more clear now.
david
|
|
|
|
|
a_david123 wrote:
pFile=fopen("C:\\str.dat","r");//here str=david
That's not true because you aren't using the str variable you are writing just the string.
You'll have to construct the path:
CString csPath = "C:\\" + str+ ".dat"; // now csPath = "C:\\david.dat"
pFile=fopen(csPath,"r");//
Is it what you want to do?
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
|
If I understood u correctly,
str="david";
So u need to
str = "C:\\" + str + ".dat";
and then
pFile=fopen(str,"r");
RIGHT?
/\|-||\/|/\|)
|
|
|
|
|
better convert it to char* then use fopen,
and more over, u cant use two "+"s in CStrings,
try like
str +="david";
str +=".dat";
V
|
|
|
|
|
Vivekuniq wrote:
and more over, u cant use two "+"s in CStrings,
yes you can, because there are global operators + which take CString parameters...
the only requierement is that one of the two operands of the + must be a CString.
"c:\\" + str + ".dat" is correct so...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
tres bien toxcct !!
V
|
|
|
|
|
If both sides are char* then you can also do this:
char * first = "first";
char * second = "second";
CString str = CString(first) + second;
[EDIT]
I see there was some confusion about this post. So, for anyone looking at this the first time will understand better:
At first glance it may seem that I'm adding two char* pointers together. But in reality it is not. The "first" string is being converted to a CString using a temporary object and then the CString addition operator is being called to append the second string. Finally the resulting CString (first and second combined) is assigned to "str".
|
|
|
|
|
Bill Buklis wrote:
If both sides are char* then you can also do this:
your assert is not really correct. by explicitely creating one CString as operand of the operator +() , it doesn't see two char* anymore. the compiler sees the operation Cstring+char* and searches for the CString& operator+(const CString, LPCTSTR) ...
which come back to what i said previously :
at least one of the 2 operands of the operator + must be a CString...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
I never meant to imply that some conversion wasn't necessary. You're absolutely correct that one of the operands must be a CString. I was merely showing an alternative approach that doesn't require declaring another variable. At the end, both are essentially the same thing.
|
|
|
|
|
Hi
I have created a new Icon image for my program. I set the small icon and big one to my new icon and everything work fines. The problem is when i open the folder containing my exe file (inside debug):
If i chose view -> Large Icons, i see that my app has my new icon
BUT IF I CHOSE view -> Small Icons or List or Details, i see that my app icon is not my new one but the standard MFC blue icon.
How can i change that?
/\|-||\/|/\|)
|
|
|
|