|
Hi,
I'm working on a Windows Mobile application that connects to a server on a PC.
The problem with the following lines:
CSocket as;
if(!as.Create())
MessageBox(_T("creation failed"));
if(as.Connect(_T("192.168.1.24"), 110))
MessageBox(_T("connected"));
else
MessageBox(_T("failed to connect"));
is, that Connect(...) allways returns TRUE, even if the server isn't started and even if the PC with the IP address 192.168.1.24 is switched off.
This error only occures with Windows Mobile and a WLAN connection. On Windows XP/Vista connected via WLAN/LAN or Windows Mobile connected via USB Connect(...) returns FALSE when there's no server.
Any hints?
Thanks,
Thomas
ps.: to be a bit more precise - the problematic connection is from a PDA via WLAN to a Netgear internet router and the PC is connected via LAN
|
|
|
|
|
Hi everybody,
I like to catch the doubleclick on the MDI Frame.
Not somewhere into the Frame, rather on the titlebar of the frame itself.
In PreTranslateMessage of the MDIChildWnd I tried already to catch the message
WM_LBUTTONDBLCLK, but it seems that this message is never handled to this frame.
Has anyone an idea?
Big thanks
|
|
|
|
|
Knowing how frames work for normal windows, I suspect you want to look for WM_NCLBUTTONDBLCLK, i.e. the non-client area equivalent of WM_LBUTTONDBLCLK
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hai!
Is there any key in the registry which changes its value each time i install and uninstall the driver for a smart card reader!!
Thanks!
|
|
|
|
|
There are many registry settings changing. What is the purpose of this question? Why do you need to know registry modifications?
There are too many to list and some are vendor specific. Locate the driver installation package for your smartcard device and open the INF file. Registry modifications are located in the 'AddReg' sections. You can also install an installation monitor and log the registry changes.
Best Wishes,
-David Delaune
|
|
|
|
|
Hallo,
I have the following problem with the Thread:
I create the Thread first as SUSPENDED, but it does not start at the expectetd time.
First the Program calls this function:
ThreadStart();
///////////////////////////////
ThreadStart()
{
if (m_pSelThread != NULL)
{
if (::WaitForSingleObject(m_pSelThread->m_hThread, 0) != WAIT_OBJECT_0)
return;
delete m_pSelThread;
m_pSelThread = NULL;
}
::WaitForSingleObject(m_SEl_Start_Event, 0);
m_SEl_Start_Event.SetEvent (); // CEvent Object
CWinThread* m_pSelThread = AfxBeginThread(ThreadFunktion, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
m_pSelThread->m_bAutoDelete = FALSE;
m_pSelThread->ResumeThread();
}
UINT ThreadFunktion
(
LPVOID param
)
{
if (param == NULL)
return -1;
DoSomeThing();
return 0;
}
The Thread does not come to the UINT ThreadFunktion(LPVOID param).
Any help would be appriciated.
|
|
|
|
|
susanne1 wrote: CWinThread* m_pSelThread = AfxBeginThread(ThreadFunktion, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
Shouldn't that be:
m_pSelThread = AfxBeginThread(ThreadFunktion, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
i.e. you're hiding the class member variable with the local 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]
|
|
|
|
|
Okay i did it like that defining the Thread Pointer in the header File, but this deos not help.
|
|
|
|
|
susanne1 wrote: ::WaitForSingleObject(m_SEl_Start_Event, 0);
What is the purpose of the above call?
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]
|
|
|
|
|
to wait for the event to happen.
|
|
|
|
|
That doesn't make sense. Anyway I made a test on my system:
Without hiding the class member variable, the thread starts happily.
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]
|
|
|
|
|
Can't you just start the thread and wait for the event to happen within the thread before executing code? What's all this mess about? Why are you setting the m_bAutoDelete member to false? I see you may delete it manually, but *what* is the purpose of it?
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
the thread mus t be created but not start immediately, autodelte false to tell him not to delet himself.
|
|
|
|
|
So, why should it not start immediately? Can't you just start it immediately, but not execute any code until the interested event happens? I asked for the reason behind your approach. I did not ask you what m_bAutoDelete is for. Tell me why do *you* want the thread not to delete itself.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Rajesh R Subramanian wrote: Why are you setting the m_bAutoDelete member to false? I see you may delete it manually, but *what* is the purpose of it?
Well you may want to do that, I mean that's nothing wrong in doing it (and that's the reason for delaying the thread start).
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]
|
|
|
|
|
No, I asked why did he want to delete it manually (as opposed to leave it die in its way). There could be valid reasons, I wanted to know the OP's reason.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
You're right: there could be valid reasons, anyway you're very (and, of course, politely) curious about her reason.
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]
|
|
|
|
|
Of course, politeness is guaranteed (or 100% money back), after Mr. Maunder's new commandment.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
BTW there's a polite way to advice someone to stop using threads?
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]
modified on Wednesday, August 12, 2009 10:59 AM
|
|
|
|
|
I have a dialog based application with WebBrower control on it.
The URL that i open in the webbrowser uses script having Windows.close() method.
When the URL is closing it calls OnWindowClosing Browser Method, and later post a message saying "The webpage you're viewing is trying to close this window. Do you want to close this window? - YES/NO"
My issue is on clicking YES the dialog is not closing.
What should i do to close the dialog on selecting YES in above dialog.
And secondly, i want the application to return 22 on clicking YES. How to may Dialog application return 22 on clicking YES above.
Thank you..
|
|
|
|
|
Member 3834630 wrote: My issue is on clicking YES the dialog is not closing.
After the browser control is closed are you relaying that event to the dialog or attempting to close the dialog with a call to EndDialog()?
1300 calories of pure beef goodness can't be wrong!
|
|
|
|
|
Hello,
I have not done anything currently.
What should i do to get dialog closed when Windows.Close() method is called in script.
What to do to close the dialog when YES is selected and return a different value to ExitInstance().
Thank you..
|
|
|
|
|
Member 3834630 wrote: What should i do to get dialog closed when Windows.Close() method is called in script.
It really depends on your requirements. One way would be to create a class that implements the DWebBrowserEvents2[^] dispatch interface and register it with the appropriate connection point in the browser control. When the windowClosing() method is invoked (in your dialog) you can cancel the event, display the prompt to close the window and if the user selects yes simply call EndDialog() with the desired error code:
void CMyDialog::onWindowClosing(
VARIANT_BOOL IsChildWindow,
VARIANT_BOOL *Cancel)
{
*Cancel = VARIANT_TRUE;
UINT result = MessageBox("Close window?", "Close Window?", MB_YESNO);
if(IDYES == result) {
EndDialog(23);
}
}
I am a lean mean ground beef machine!!!
|
|
|
|
|
Hi experts,
I meet a question about strict-aliasing problem when compiling a code using gcc. The problem is described below:
#include <stdio.h>
#include <stdlib.h>
unsigned long queue[10];
int queue_len = 0;
int main()
{
unsigned long a = 0x00010002;
unsigned short* b = (unsigned long*)(void*)&a;
b[0] = 6;
b[1] = 5;
printf("hello world %x", (int)a);
return 0;
}
When you compile the code using the option below:
gcc -O3 -Wall <code file>
The result of "a" would not be changed.
However, when you compile the code using the option below:
gcc -O3 -Wall -fno-strict-aliasing <code file>
The result of "a" is changed.
This behaviour can be explained in the aliasing rule of GCC standard. The intention of strict-aliasing rule is to prevent the case that a pointee is being pointed to by a pointer of different type (the so-called type-punning error). In the case above, the pointer type of "&a" is (long*) while it is being accessed by pointer of type (short*), the action that being taken in (short*) will not take effect to the original pointee. This is a kind of trap introduced in GCC.
So, up to now, we can still explain the behavior, however, for the case below:
#include <stdio.h>
#include <stdlib.h>
typedef struct _MyStruct
{
unsigned short a;
unsigned short b;
}MyStruct;
typedef struct _MyStruct2
{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
}MyStruct2;
int main()
{
MyStruct a = {0x0001, 0x0002};
MyStruct2* b = (MyStruct2*)(void*)&a;
b->a = 0;
b->b = 5;
b->c = 0;
b->d = 6;
printf("hello world %x %x\r\n", (int)a.a, (int)a.b);
return 0;
}
It should suffer from the same effect, however, the content of "a" is changed no matter you turned on the strict-aliasing rule or not.
Do anyone know what is happening in the compiler side?
You can find the open-std for C here:
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1336.pdf[^]
Take a look to section 6.3.2.3, Point 7, it states that:
A pointer to an object or incomplete type may be converted to a pointer to a different
object or incomplete type. If the resulting pointer is not correctly aligned for the
pointed-to type, the behavior is undefined.
Thanks a lot.
|
|
|
|
|
You're misunderstanding what -fno-strict-aliasing does. GCC does strict aliasing analysis in order to optimise code, not to avoid type-punning. What it does is assume that variable references with different types can't be aliased. So, in the first case (unsigned long a; unsigned short* b; ), GCC looks at the types of a and b and assumes that assignments to *b cannot affect a. So, it presumes that a is invariant across main(), so can optimise the code and inject the (presumed) constant value of a into the code generated for the printf statement. So, a never exists in memory. With -fno-strict-aliasing, you're tellng GCC it can't make that assumption, so that optimisation isn't done.
I believe the reason that -fno-strict-aliasing doesn't affect the second example is that GCC only implements the strict aliasing optimisation for variables of scalar types such as int, char, short, float etc.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|