|
I know that, but Daniel's requirement was, "without any windows."
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Have your application be a window - hidden and with no size.
This way, you can catch the relevant messages.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
Hi Experts,
How to get Log of a value with respect base of 2.
Thanx
|
|
|
|
|
log<sub>2</sub>(x)=log<sub>e</sub>(x)/log<sub>e</sub>(2)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Binary logarithm.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi Experts,
How can I read a byte in unsigned variable. Because this value may be nagetive.
I tried like this
<br />
short signed int m_nOneByte=0;<br />
memcpy(&m_nOneByte,btBuffer+0x40,1);<br />
Hex value is 0xf6 which is -10.But it is dispalying 246.
|
|
|
|
|
pther wrote: How can I read a byte in unsigned variable. Because this value may be nagetive.
Sorry, you seem confused: Bytes *ARE* unsigned types. Range 0-255.
0xf6 is 246. It is NOT negative.
int (the signed is the default) can hold all positive values a byte can have.
Are you perchance missing the char -type?
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
If your array is a char array, you can simply assign it:
short newValue = *(btBuffer+0x40);
BTW, you should use the prefix "m_" on class members only (m stands for member).
|
|
|
|
|
pther wrote: How can I read a byte in unsigned variable. Because this value may be nagetive.
Simple, for instance:
unsigned char buff[]={0xff, 0xf6, 0x01};
int i;
i = *((char *) &buf[1]);
<pre>
:)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Hello everyone,
Suppose we defined a string buffer (array), like this,
char array[] = "hello world";
char buf[256]
Sometimes, I noticed that we either use,
1. array (buf)
or use,
2. &array (&buf)
or use
3. &array[0] (&buf[0])
as the beginning address of the array,
example like,
strcpy (buf, array);
strcpy (&buf, array);
...
I am wondering the differences between the 3 approaches, and which approach is the most correct?
thanks in advance,
George
|
|
|
|
|
array and buf both denote pointers to chars (char* ).
In fact, array is a const char* , as you can not alter the content of the string (well, even if you could, it would be wrong to try).
By convention, strings in C++ are null terminated, and it is your responsibility to count the \0 in. I the string literal "Hello World!", the \0 is appended automagically by the runtime. Go try and check the string lenght!
So, &buf is denoting the address of a pointer to a string of char s. When that is what you want, you want exactly that.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
Thanks jhwurmbach,
So you mean buf is not the same as $buf? But in my experience buf and &buf always have the same effect, examples,
1. strcpy (buf, "Hello World");
2. strcpy (&buf, "Hello World");
regards,
George
|
|
|
|
|
George_George wrote: n my experience buf and &buf always have the same effect, examples,
1. strcpy (buf, "Hello World");
2. strcpy (&buf, "Hello World");
And this *DOES* work?
I would bet that given
char buf[256];
buf is of type char*
&buf is of type char** - that is a pointer to a char pointer.
OTOH, &buf[0] would be the same as buf , as you are dereferencing on pointer by using the operator[]
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
Hi jhwurmbach,
I have tested that buf and &buf are of the same value -- means same effect. Here is my program to test. Any comments?
int main()
{
char buf[] = "Hello World";
int p1 = buf;
int p2 = &buf;
return 0;
}
regards,
George
|
|
|
|
|
This:
#include "stdafx.h"
#include "iostream"
int _tmain(int argc, _TCHAR* argv[])
{
char array[] = "Hello World!";
if( array == &array) {
std::cout << "Equal" << std::endl;
}
else {
std::cout << "Inequal" << std::endl;
}
char* p1 = array;
char* p2 = (char*)&array;
char* p3 = &array[0];
int pI1 = (int)array;
int pI2 = (int)&array;
int pI3 = (int)&array[0];
return system("pause");
} won't compile:
test.cpp(21): error C2446: '==' : no conversion from 'char (*__w64 )[13]' to 'char *'
test.cpp(21): error C2040: '==' : 'char [13]' differs in levels of indirection from 'char (*__w64 )[13]'
So array is of type char* , wheras &array is of type char[13] .
But you are right, both point to the same chunk of memory.
It seems like the runtime is doing some magic with the adress-of -operator.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
Thanks jhwurmbach,
I have tested that you are correct. My further finding is when you rename the extension from .cpp to .c, then C compiler will be used and there will not be any compile error.
What magics do you think runtime or compiler is making? I am very confused why the value of address of a variable is the same as that the variable itself.
jhwurmbach wrote: But you are right, both point to the same chunk of memory.
It seems like the runtime is doing some magic with the adress-of-operator.
regards,
George
|
|
|
|
|
jhwurmbach wrote: array and buf both denote pointers to chars (char*).
In fact, array is a const char*, as you can not alter the content of the string (well, even if you could, it would be wrong to try).
Actually both are const pointers to char (i.e. const char * ). That means you cannot change their value (i.e. pointed address) while it is perfectly legal to change their content.
hence:
array++;
while:
array[0] = 'H';
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Cool CPallini,
You are correct and I have tested it.
What about your comments about buf and &buf?
I have tested that buf and &buf are of the same value -- means same effect. Here is my program to test. Any comments?
int main()
{
char buf[] = "Hello World";
int p1 = buf;
int p2 = &amp;amp;buf;
return 0;
}
regards,
George
|
|
|
|
|
|
CPallini wrote: And (surprisingly to me) they indeed hold the same address.
I am glad that I am not the only one who is surprised.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
Often a little test is worthy to do.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
I did[^], but it was you who found the bit of explanation.
Thanks!
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
|
George_George wrote: The address of operator (& does nothing when applied to array names (see discussion below), but does with pointers..
Yes. The overall point is it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Thanks for your confirmation CPallini!
regards,
George
|
|
|
|
|