|
Hi,
the easiest way probably is like this for converting val to (sign,exp,mant):
0. threat special values separately (mainly zero); for others do:
1. sign=0;
2. if (val<0) {sign=1; val=-val;}
3. exp=0;
4. while (val>=1) {exp++; val/=2;}
5. while (val<0.5) {exp--; val*=2;}
6. now val is in [0.5,1); we assume you want M bits for mantissa, then:
7. val*=1<<m;
8. mant="(int)val;" this="" will="" give="" exactly="" m="" bits
possible="" deviations:
-="" the="" exponent="" may="" be="" biased="" (e.g.="" always="" add="" 0x80)
-="" step="" 8="" perform="" rounding="" instead="" of="" truncation
-="" 7="" and="" act="" as="" if="" is="" one="" more,="" then="" drop="" highest="" bit="" (as="" it="" set)
=""
<div="" class="ForumSig">Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Is it -16.735 or -16,735?
-16.735 = -10000.1011110000101000111101011100001010001111010111
-16,735 = -100000101011111
The general procedure is to do integer and fraction part separately.
For integer part N :
1. If N is not zero, divide N by 2
2. If remainder is 1 write down 1, if its 0 write down 0
3. N = N/2 - remainder. Go back to Step 1.
Finally, write the 0 and 1 in reverse order.
Example, N = 40
1. 40/2 = 20. Remainder = 0. Write 0
2. 20/2 = 10. Remainder = 0. Write 0
3. 10/2 = 5. Remainder = 0. Write 0
4. 5/2 = 2 + 1/2. Remainder = 1/2. Write 1
5. 2/2 = 1. Remainder = 0. Write 0
6. 1/2 = 0 + 1/2. Remainder = 1/2. Write 1
Threfore, 40 = 101000
For fraction part F,
1. If F is not zero, Multiply F by 2.
2. If result is greater than or equal to 1, write down 1. F = (F * 2) - 1
3. If result is not greater than 1, write down 1. F = (F * 2)
4. If F > 0 go back to step 1.
Example, F = 0.25
1. 0.25 * 2 = 0.5. Write down 0
2. 0.5 * 2 = 1. Write down 1
Thus 0.25 = 0.01
|
|
|
|
|
Hello,
I have already implemented that my application starts when a file associated with it is doubleclicked in explorer. However, this only works when my program does not run when the doubleklick happens. It then opens the associated file.
I want to implement the same behaviour when my application is already running, i.e. my app is up and waiting, and someone doubleclicks a file associated with it. What's the best way to get that message in my application?
|
|
|
|
|
What currently happens if you double-click a file within Explorer and your app is already running? Does a second instance come up?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Sorry, of course I should have mentioned this before: my application is dialog-based, and it is a single-instance application already. That means I use Findwindow when I start my program, and if I find another instance of it running I quit. Instead, I should post some kind of message telling the running instance that I want to open a file instad, this is what I haven't figured out yet.
|
|
|
|
|
Erik wrote: That means I use Findwindow when I start my program...
You should be using a mutex instead. FindWindow() could potentially cause a deadlock situation.
Erik wrote: Instead, I should post some kind of message telling the running instance that I want to open a file instad, this is what I haven't figured out yet.
Are you referring to PostMessage() ?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I had a similar problem. I searched CP for "single instance", and the first article that came up was:
Limiting an application to a single Instance - the MFC way[^]
I fixed a small (but pretty nasty) buf in the demo program, and all is good. Read the article, and some of the comments for more information.
Good luck,
Iain.
I have now moved to Sweden for love (awwww).
If you're in Scandinavia and want an MVP on the payroll (or happy with a remote worker), or need contract work done, give me a job! http://cv.imcsoft.co.uk/[ ^]
|
|
|
|
|
We are having Host application which sends file data streams 64 bytes at a time continuously to target through TCP/Ip connection. while sending data if LAN cable is disconnected Target is executing recv(). it is not blocking at recv(). is there any means of getting connection status before executing recv()?
|
|
|
|
|
nvshree87 wrote: is there any means of getting connection status before executing recv()?
What is wrong with calling recv() and evaluating a possible error code with WSAGetLastError() ? There are for example WSAECONNABORTED and WSAECONNRESET to signal an interrupted TCP stream.
/M
|
|
|
|
|
Hi All,
I Tried to change the default icon in MFC by going to the toolbox and editing it and i built the solution.
When i run the application there is no change happening...
I tried searching in the internet .... but i am not able to find anything
So somebody pls tellme howto do it...
Regards,
Hari
|
|
|
|
|
try Resource Files folder ..in your project directory ..its possible to change it
|
|
|
|
|
Can u please be a bit more detailed ...
I opened the directory and the resources folder and CLicked on the icon which says MFC and changed it and built it again ...
But no Luck... it still not working
|
|
|
|
|
You should change the proper image type icon (The application bar shows the 16x16 one).
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hey ,
There are 3 16x16 which one should i change!!!
Thanks to Both For the Quick reply
|
|
|
|
|
You should actually change all the images of the icon.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
When we lauch the dialog it actually shows a 32x32 (16 colors) i changed that and it works ...
Thanks,
Hari
|
|
|
|
|
Hi All,
Can anybody give me an example to get the drives of a client pc from a server pc using NetServerDiskEnum.Please specify the first argument i.e LPWSTR servername.
Thanks,
Abinash Mohanty
|
|
|
|
|
Abinash Mohanty wrote: Can anybody give me an example to get the drives of a client pc from a server pc using NetServerDiskEnum.
Was this[^] impossible to find?
|
|
|
|
|
Thanks for your reply.But if I run this example on my pc it retrieves the drives of my pc.Suppose I want to retreive the drives of a pc having name for eg. abc which is connected through LAN to my pc. Please tell me the first parameter of NetServerDiskEnum .
Regards,
Abinash
|
|
|
|
|
Abinash Mohanty wrote: Please tell me the first parameter of NetServerDiskEnum .
Did you read the documentation on the link I gave you?
|
|
|
|
|
|
I am new to multithreading and my application doesnot compile. It is a Dialog Based Applicationin MFC with only one ButtonCtrl
Here's the code
UINT ThreadFunc(LPVOID pParam)
{
MessageBox("Thread Started");
return 0;
}
void CAppDlg::OnButtonClkRunThread()
{
AfxBeginThread(ThreadFunc, this);
}
Where am I going wrong?
Manmohan Bishnoi
|
|
|
|
|
Usually compiler errors are pretty informative, so have a look at it.
I guess the error occurs in
Manmohan29 wrote: MessageBox("Thread Started");
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
try this ...
UINT ThreadFunc (LPVOID lpParam)
{
::MessageBox(0,L"Thread Started",L"",1);
return 0;
}
void CAppDlg::OnButtonClkRunThread()
{
::AfxBeginThread (ThreadFunc,this);
}
|
|
|
|
|
Manmohan29 wrote: doesnot compile
And what does the compiler say? Be specific.
To add to it,
Manmohan29 wrote: UINT ThreadFunc(LPVOID pParam)
{
MessageBox("Thread Started"); //----> BAD idea!
return 0;
}
void CAppDlg::OnButtonClkRunThread()
{
AfxBeginThread(ThreadFunc, this);
}
Because if your main thread becomes busy into something, the newly spawned thread as well would block for displaying the message. This is because you are using a function (MessageBox from MFC) that would make use of the default message pump of your application.
In other words, if you add a Sleep(3000); after AfxBeginThread, the message from your thread would probably be displayed after this sleep period only!
I see you're just starting to learn, but threading has such "gotchas", that you'll learn along the way. Lesson learned today: It isn't a great idea to use something within a worker thread, that may in turn use the default message pump of the application (in a blocking fashion).
“Follow your bliss.” – Joseph Campbell
|
|
|
|