|
You want to pass the SOCKET to the thread procedure correct?
Declare your class-member thread procedure as
static DWORD WINAPI listener(LPVOID lpParam);
Write the function something like this:
DWORD WINAPI myclass::listener(LPVOID lpParam)
{
SOCKET s = (SOCKET)lpParam;
... do stuff with the socket...
return 0;
}
Create the thread something like:
HANDLE Handle_Of_listener_thread = 0;
Handle_Of_listener_thread = CreateThread( NULL, 0, listener, (LPVOID)s, 0, NULL);
Better?
Mark
|
|
|
|
|
thank you!
i shall try this as soon as i get home!
-- modified at 16:06 Thursday 19th October, 2006
still getting stupid errors
main code: (some part removed)
// Messenger class!
ref class Messenger : public Form
{
public:
static DWORD WINAPI listener(LPVOID lpParam);//line 26
SOCKET s;
bool conected;
HANDLE Handle_Of_listener;
Messenger()
{
InitForm();
if(ConnectToHost(1234,"127.0.0.1") == true)
{
printf("conected!");
conected = true;
HANDLE Handle_Of_Thread_1 = 0;
Handle_Of_listener = CreateThread( NULL, 0, listener, &s, 0, NULL);//line 38
}
}
static String ^myUsrName;
private:
// Win controls, Icon & Menu
RichTextBox ^ MessengerTxtR;
RichTextBox ^ MessengerTxtS;
array<Button^>^ MessengerButtons;
static String^ s_strZero = String::Format("0{0}0", System::Globalization::NumberFormatInfo::CurrentInfo->NumberDecimalSeparator);
System::Drawing::Icon^ m_pCalcIco;
MainMenu^ m_pMessengerMenu;
MenuItem^ m_pFileMenu;
MenuItem^ m_pAboutMenu;
MenuItem^ m_pExitMenu;
public:
DWORD WINAPI listener(LPVOID lpParam)//line 62
{//line 63
SOCKET s = (SOCKET)lpParam;
return 0;
}
error:
.\main.cpp(26) : warning C4441: calling convention of '__stdcall ' ignored; '__clrcall ' used instead
.\main.cpp(63) : warning C4441: calling convention of '__stdcall ' ignored; '__clrcall ' used instead
.\main.cpp(63) : error C2686: cannot overload static and non-static member functions with the same parameter types
.\main.cpp(26): could be 'DWORD Messenger::listener(LPVOID)'
.\main.cpp(62): or 'DWORD Messenger::listener(LPVOID)'
.\main.cpp(38) : error C2664: 'CreateThread' : cannot convert parameter 3 from 'DWORD (__clrcall *)(LPVOID)' to 'LPTHREAD_START_ROUTINE'
None of the functions with this name in scope match the target type
|
|
|
|
|
|
I have a Image on my dialog this picture is on the WM_ERASEBKGND and its work fine but I have a problem
when I move my program or if I move a program on my program then Mem Usage of my program increase How can I solve this problem. And I have another question
if I use of a code like this on WM_PAINT It increase PF Usage and Mem Usage of my program or no
<br />
void CMyPicture::OnPaint()<br />
{<br />
CPaintDC dc(this); <br />
CRect rect(0,650,830,520);<br />
CBrush m_Brush2;<br />
m_Brush2.CreateSolidBrush(RGB(255,255,255));<br />
dc.FillRect(&rect,&m_Brush2);<br />
m_Brush2.DeleteObject();<br />
}<br />
Thanks
|
|
|
|
|
messages wrote: if I use of a code like this on WM_PAINT It increase PF Usage and Mem Usage of my program or no
No
Are you leaking resources in your WM_ERASEBKGND handler??
|
|
|
|
|
Thanks for your help I used of this code but when I move a program Mem Usage of my program on TaskManager increase
Is it problem does my code has problem
I read Image on with
m_Image.Load<code> OnInitDialog() method<br />
<code><br />
<br />
BOOL CMyPicture::OnEraseBkgnd(CDC* pDC)<br />
{<br />
Image.BitBlt(pDC->m_hDC,0,0,593,420,0,0,SRCCOPY);<br />
return TRUE;<br />
}<br />
my code is this only but I have this problem
Thanks
|
|
|
|
|
Hmmm are you sure that's all you do in OnPaint() and OnEraseBkgnd()?
Your OnEraseBkgnd() wouldn't compile as you've shown it here.
Mark
|
|
|
|
|
It's ok
probably you don't neet to call DeleteObject
(destructor will do it for you)
Anyway, for your example is better use FillSolidRect()
and you dont have to worry about memory at all
viliam
|
|
|
|
|
Thanks for your help But why Mem Usage of my program increase can you help me
Thanks
|
|
|
|
|
If you want this question answered, you need to post some code. The IDE will actually try to show you where the leaking memory was assigned, is it in your paint code at all ?
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
I am using STARTUPINFO structure to redirect stdin of console application
I am starting.
STARTUPINFO si;
si.dwFlag = START_USESTDHANDLES;
si.hStdInput = myHandle;
but i need to redirect just STDIN and I dont know how?
What parameter should I use for si.hStdOutput , ... ?
Thank you
viliam
|
|
|
|
|
hello,
i'm still a newbie but
try this one: http://www.codeproject.com/threads/redir.asp
i need to learn more... i want to be like you guys... i'm just a begginer
|
|
|
|
|
See here and here.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hey good people,
I'm a 2nd year IT student and i desperately need some help on how to implement network capability into my programs .
I got some tutorials on winsock2 but i dont know where to start. The tutorials i got all assume you already a genius programmer. If anyone know where i can get some winsock2 tutorials for beginners please forward me a mail if it's not to much to ask 205017517@cput.ac.za or if you can offer any help in this regard i would greately appreciate it.
Thank you everyone:
Phoenix
|
|
|
|
|
The MSDN library has much info...Here's a good place to start
Windows Sockets 2[^]
You don't need to necessarily be a "genius programmer" but it's so much easir if you have at least
basic knowledge of Windows programming for messaging and user interface plus knowledge of the
network protocol(s) you'll be using. Sockets is the easy part
Mark
|
|
|
|
|
Do you have any C/C++ programming experience? You said you are a beginner, so you will probably want to work on basic C/C++ programming before you jump into network programming, otherwise you are likely to be writing code and have absolutely no idea what it does ... which will make it impossible to debug.
If you insist on jumping into network programming anyway, try this link to get you started.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
|
Phoenix101 wrote: I'm a 2nd year IT student and i desperately need some help on how to implement network capability into my programs
http://www.codeproject.com/internet/#Client%2FServer+Development[^]
Phoenix101 wrote: i can get some winsock2 tutorials for beginners please forward me a mail if it's not to much to ask 205017517@cput.ac.za
please try not to post your email address in the public forums for three reason!
1. you can be victim of spam
2. you lecturer migth be watching this forums..
3. you could be got flamed for following up the message and asking forum users to mail you!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
three reason
|
|
|
|
|
WhiteSky wrote:
three reason
i like third Reason most
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
i would like to get some help from you guys. i am doing porject on PCINfo A-Z which is on java. i am attemting to do using JNI( Java Native Interface) through Visualc++.
my project basically deals about displaying information of processor, memory, ram, cache etc. like BenchMark tools.
so i would like to get some help and if any one of the codeproject member can suggest me as far possible.
hopping to get some help.
thanks
contact at:
khanalforarjun@hotmail.com
khanaltoarjun@yahoo.com
khanaltoarjun@gmail.com
|
|
|
|
|
I don't know how to do it, but I would eliminate your e-mail addresses from the message, you will be heavily spammed if any spam guy finds thos addresses, and everybody will be able to answer your uqestion as I've done by clicking the answer button.
Sorry for not answering your question...
|
|
|
|
|
>>hi everybody
Hi Dr Nick!
I'm not sure about the JNI stuff (wrong message board for that) but some Windows APIs may be
helpful...here's a start:
GetVersionEx()
GetSystemInfo()
GlobalMemoryStatusEx()
|
|
|
|
|
Is it possible to insert an element directly into it's 'right' place in an ordered vector, instead of using push_back() and then sort()? If not, is it possible with a list?
Thanks,
Avi.
|
|
|
|
|
You can use insert, but you have to march through the vector/list to find the correct location to place it.
Alternatively, you can use the set template which will always be sorted (but requires uniqueness) or multiset (which will be sorted and stores non-unique items in a vector at each location).
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|