|
hi
i have developed a server socket program which keeps on sending message. i have created a seperate thread using afxbeginthread(SendMsg,this) (this points to the CSocket derived class). im using carchive. the problem is when the thread tries to send messaage i get a debug assertion error.
i dont know what is the cause of the problem.
UINT SendMS(LPVOID lp)
{
CServerSock* pSock=(CServerSock*)lp;
do
{
pSock->SendStatus();// here i get error
Sleep(1000);
}while(pSock->m_pDlg->m_sta);
return 1;
}
void CServerSock::SendStatus()
{
m_pDlg->Serialize(*m_pArOut);
m_pArOut->Flush();
}
when i press retry i goes to base class
void CAsyncSocket::AssertValid() const
{
CObject::AssertValid();
ASSERT(m_hSocket == INVALID_SOCKET || CAsyncSocket::FromHandle(m_hSocket) != NULL);
}
outside the thread im able to send the message. i would be happy if u can help me with this problem
regards
aswin
|
|
|
|
|
I am just trying of the problem if i got i convey to u.
|
|
|
|
|
Dear u can not use CSocket in the worker thread .If u want to use CSockets with threads then use User interface threads.
But there are so many problems when u even use it in User Inteface threads.
What u should do Accept the sockets in the context of one thread(may be primary thread) , then Detach the socket handle from the CSocket Object Then start the Thread in suspneded mode ,Save it to Class level object of your CWinThread derived class.
Then resume thread .And attatch the Socket handle to Class level object of CWinThread derived class. may be in the Ininstance .
Now your socket object will be valid in the context of new thread.
Note:
You should also called AfxSocketInit Initinstance of your CWiThred Derived class.
if u dont follow these steps , may be your program work fine in debug mode , but it will get crashed in release mode.
No Worries!
|
|
|
|
|
Hi there
How can i create a CRgn from String?
Thanks for reading
|
|
|
|
|
One way I can think of is:
0) CDC::SelectObject (your font, perhaps)
1) CDC::BeginPath ()
2) CDC::TextOut (your string here)
3) CDC::EndPath ()
4) ::PathToRegion ()
Tada!
Don't forget to tidy up your CDC by removing any selected fonts, etc.
Iain.
|
|
|
|
|
|
Hi
I have a image in memory dc.How i can rotated this image on 90 degrees.I know how i can to rotate it on 180 with BitBlt fun but i not guess how on 90.
Thank
|
|
|
|
|
|
You will needed to create a DIB section and routines to read and write the pixels directly. The book "Programming Windows" contains code for doing this (no trig. required). Alternatly, on windows 2000 and above you can use world transforms (a bit tricky).
INTP
|
|
|
|
|
1) How to set the sound channel volumes and (un)mute those channels using the Windows API?
2) I saw SpyXX.exe Loading a library remotely (loading spyhook55.dll under winamp.exe, for instance). How can I do that?
|
|
|
|
|
Hello,
This site doesn't only contain a usefull forum, it also contains some usefull articles Spying[^]
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
I've worked with Microsoft Office development , now I have next problem .
I 've created new Word XP document - E-mail message and try to set programmicaly value of suc fields as Subject,Recepient also add File Attachment . But I can't get access for this fields . I've found that this fields are included in the command bar Envelope that has type msoControlPane . How can I know that class from Microsoft Word Type library 10.0 correspond for this Pane control (_CommandBarButton,_CommandBarActiveX,... or something else) and how can I get access for fields that included in this Pane . Also how can I add extended fields as File Attachment or something else .
|
|
|
|
|
Hi folks!
I want to program a tool that only stays as a tray-icon.
My problem is how to design it in MFC.
The application is a CWinApp, but without a Window in m_pMainWnd it closes immediately.
How do I build an application that runs without a window?
Do I need a valid hwnd for Shell_NotifyIcon()? (I tryed with NULL as hwnd and it seemed to work..)
One solution may be to create a window but never show it. But perhaps there is a better way out there...
Thanks!
constantin
|
|
|
|
|
You could actually search this site...
One of the very first articles here was a Tray icon application by Chris Maunder.
Just search for tray icon etc.
Iain.
|
|
|
|
|
I am writting a C/S program based by Socket and IO completion.
I use CreateIoCompletionPort and GetQueuedCompletionStatus to build and get the connected socket. The Server program goes well when it is built.
I also built a client for testing server.But a problem comes.
If I use one client to connect the server, everything is fine.
IF I use two more client to connect the server at the same time, the server handle them one by one.It doesn't handle them synchronously as I expected.
Does anyone know the reason. Anyone is so kind to replay me?
Thanks.
aaa
|
|
|
|
|
u gave the answer in ur question!!
read it carefully U will get the key!!
The chosen One
|
|
|
|
|
Really?
Sorry, i have tried a lot. But it isn't improved.
I am locked by the it.
Can u tell the detail of the key ?
|
|
|
|
|
hmm, unless you have 2+ CPU box, it will handle them always synchronously. IOCP only can help somehow masquerade it.
Checklist for the very beginning
- are your sockets initialized as OVERLAPPED ?
- are there more threads waiting in GetQueuetCompletionStatus ?
- what about the return codes from WSASend/FileWrite , are they correct?
- is the problem while accepting the clients, or while communicating?
|
|
|
|
|
My xml file is below:
<?xml version="1.0" encoding="GB2312"?>
<root>
<node1>
<bmname>sichuan.bmp</bmname>
</node1>
<list>
<city>
<cityname>ganzi</cityname>
<point>(190,270)</point>
</city>
<city>
<cityname>mianyang</cityname>
<point>(467,190)</point>
</city>
<city>
<cityname>yaan</cityname>
<point>(346,335)</point>
</city>
</list>
</root>
There will be many cities in xml file,and I want to get city name,point of a city at a time and store them into a struct,then I use selectNodes("list"),but it return a NULL pointer, thus I consider that the only list node is the reason,so I use selectSingleNode("list"),but it also cannot work and return NULL pointer,I've no idea,hope your help
I love Aquamarine.
|
|
|
|
|
hey guy use the STL tools and first u have parse the xml document and seperate as tokens and then u can easily get the city and point into a sep structure. Try this.....
Shanmuga Sundar.V
|
|
|
|
|
hi,
use XPath query language.
"//list/city/*"
pass this query to SelectNodes(); it will return u list of cities.
Try it out. I cannot give u compilable code as I am using .NET IDE now a days.
Search on MSDN @ writting XPath query.
The chosen One
|
|
|
|
|
I have tried it, but it's the same, I have to ask for your help.When I use XPath:"//list/city/*", it returns a zero length, when I use "//city/*", it returns all of the nodes in list node rather than the number of citis, but I have to get the number of cities.
I love Aquamarine.
|
|
|
|
|
hi,
try to understand syntax of XPath. its simple.
first "/" means root node, second "/" means child node, in ur case "list" level, now u need to fire query to enumerate cities.
when u say "//city/*" u r on level of "city" node and u r gathering infor inside city node.
try this
"/list/city/*"
Try this out, till the time I will explore how 2 use XML in .NET!!
The chosen One
|
|
|
|
|
Solve it with XPath:"//citylist[1]/*", thank you for your reply.
I love Aquamarine.
|
|
|
|
|
Hi i need an api for atoi that is compatible with unicode.
I personally dont like this api, but i dont know anyother method to convert a string to integer, and also hexadecimal string to integer?
If any one know any alternative method for conversion and conversion of hexadecimal string please help
regards,
Prakash.
The World is getting smaller and so are the people.
|
|
|
|