|
wow, you write for all
this code has one bug or no
std::list<wsabuf> m_ListBuf;
CAnswer *p=new CAnswer;
memset(p,0,sizeof(*p));
p=this;
p->m_pBuf=new WSABUF;
p->m_pBuf->len=128;
p->m_pBuf->buf=new char[128];
p->m_ListBuf.push_back(p->m_pBuf);
whitesky
|
|
|
|
|
I used a wrong memset.
Thank you.
|
|
|
|
|
As said above,
WSABUF* pWsabuf = new WSABUF is necessary.
<marquee scrollamount="1" scrolldelay="1" direction="up" height="10" step="1">--[V]--
[My Current Status]
|
|
|
|
|
I declare it in a class
class PerIOData : public OVERLAPPED
{
public:
int m_Operation;
SOCKET m_Socket;
WSABUF *m_pBuf;
int m_BufNum;
int m_NextStart; std::list<wsabuf*> m_ListBuf;
};
use like this, in a thread:
PerIOData *p=new PerIOData
...
p->m_pBuf=new WSABUF;
p->m_pBuf->len=128;
p->m_pBuf->buf=new char[128];
when data is received through IOCP:
p->m_ListBuf.push_back(p->m_pBuf);
|
|
|
|
|
followait wrote: p->m_pBuf->len=128;
p->m_pBuf->buf=new char[128];
These are the only two things you have inside WSABUF? can you please display the structure of WSABUF ?
<marquee scrollamount="1" scrolldelay="1" direction="up" height="10" step="1">--[V]--
[My Current Status]
|
|
|
|
|
I dont think that new -ing that pointer is necessary.
List will keep whatever the value we are passing in the type specified as template argument.
he may be bugging with some other issues
SaRath
|
|
|
|
|
It's my bug.
I write:
memset(p,0,sizeof(*p));
which overwrite the list member. Too careless.
|
|
|
|
|
Can you be more specific
whitesky
|
|
|
|
|
I declare it in a class
class PerIOData : public OVERLAPPED
{
public:
int m_Operation;
SOCKET m_Socket;
WSABUF *m_pBuf;
int m_BufNum;
int m_NextStart; std::list<WSABUF*> m_ListBuf;
};
use like this, in a thread:
PerIOData *p=new PerIOData
...
p->m_pBuf=new WSABUF;
p->m_pBuf->len=128;
p->m_pBuf->buf=new char[128];
when data is received through IOCP:
p->m_ListBuf.push_back(p->m_pBuf);
|
|
|
|
|
followait,
Do you get runtime error or error you assign values to m_pBuf and then push_back but i dont get any error?
can you show error,please?
whitesky
|
|
|
|
|
I have a MFC application compiled as "Static library". This exe works fine in machines with Visual Studio. But when moved to another PC without Visual Studio ..it doesn't work as supposed to be. No error is throwed.
MFC is compiled " Static Library"..
Pls help what else is missing
Suganya.
|
|
|
|
|
see previous post maybe it is some helpful to you
whitesky
|
|
|
|
|
Check whether there is any dependecies with any other DLL using dependency walker. it is available with Visual Studio.
SaRath
|
|
|
|
|
When you run the application in PC without Visual Studio .. what is the message you are getting.
Nice talking to you.
If you judge people, you have no time to love them. -- Mother Teresa
|
|
|
|
|
When i run the application in PC without Visual Studio,i am not getting any messages.
The Dependencies were verified on the developement pc.all the misssing dll's are moved but still it is not working.
|
|
|
|
|
Are all required DLLs present and registered correctly? Are you using any ActiveX controls?
"The largest fire starts but with the smallest spark." - David Crow
|
|
|
|
|
Hi Friends,
I have created an EXE File in VC++.The Exe Works fine since i am having VC++ installed in my machine.But i copied the Exe File to another machine where VC++ is not installed,there EXE doesnt work.
What is the reason for that,is there any possibility for it work.
Regards,
Ruban.
|
|
|
|
|
Try creating the exe in release mode..
If that too fail use Dependecny Walker in the other mechine to find the missing dlls
nave
|
|
|
|
|
k.n.ruban wrote: I have created an EXE File in VC++.The Exe Works fine since i am having VC++ installed in my machine.But i copied the Exe File to another machine where VC++ is not installed,there EXE doesnt work.
What is the reason for that,is there any possibility for it work.
Use Dependency Walker to find out what all dll's does your application depend on. When you take your app to new location you have to have these dependent dll's there too else the application won't work.
Nibu thomas
A Developer
Programming tips[^] My site[^]
|
|
|
|
|
I dont know your code also what is it?
sometimes you need to these files
mfc71d.dll msvcp71d.dll msvcr71d.dll
of course this is not always and it maybe depend to your code
whitesky
|
|
|
|
|
Hi Friend,
We tried by putting the missing dll files from the dependencies and we registered.But still it didnt work is there any other way.
Regards,
Ruban
|
|
|
|
|
whats type your application do you use from services in your program?
whitesky
|
|
|
|
|
Suggestion: ( May be it will work)
If your EXE is not dependent on any DLL after watching in "dependancy walker" , then i think you should build EXE in Release mode and build it using Statically Link Libraries.
Regards.
|
|
|
|
|
Hi Friend,
We tried the same way what u have mentioned but it still didnt work.
We got the dll from dependencies that are missing and pasted in the the machine where we tried Executing the Exe file but still it didnt work.
Is there any way.
Regards,
Ruban
|
|
|
|
|
Hello, everyone.
I'm currently working on a project for which I need to update some UI elements based on networık messages...
For the UI, for simplicity, I've chosen to use DHTML and for now most things are working as expected... Except for one: JavaScript calls!
Actually, all examples where you use a UI button for a JavaScript call work; but when a call is done without any button being pressed, there's an error!
One other project actually does a JavaScript call when window loading is complete. To simulate my problem, I downloaded the project from http://www.codeproject.com/dialog/web_gui/Reusing_DHTML_example.zip and in Dlg4.cpp changed the last method into
<br />
DWORD WINAPI CallJScriptLater( LPVOID lpParam )<br />
{<br />
CHtmlCtrl* a = (CHtmlCtrl*) lpParam;<br />
<br />
Sleep(5000);<br />
<br />
CStringArray strArray;<br />
<br />
<br />
strArray.Add("Picture@500");<br />
strArray.Add("Video Clip@200");<br />
strArray.Add("Some more@50");<br />
<br />
strArray.Add("File Document@1708@201");<br />
<br />
a->CallJScript2("SetParameters", strArray);<br />
<br />
return 0;<br />
}<br />
<br />
void CDlg4::_onDocumentComplete(){<br />
<br />
CHtmlDialog::_onDocumentComplete();<br />
<br />
CreateThread( NULL, 0, CallJScriptLater, &m_HtmlCtrl, 0, NULL);<br />
}<br />
So, instead of calling the JavaScript directly it calls it five seconds later...
When you launch it, five seconds later, you receive an error message; and the JavaScript doesn't work!
Would anyone have an explanation and / or a fix for this problem?
Thank you
S. Ali Tokmen
http://ali.tokmen.com
|
|
|
|