|
Hey Thanks For Reply,,
I want to add my other project as DLL because I want to make it as Hooks which contineusly sends message to my Activex project(Messages like Screen Update,Mouse Update).In my Activex project I want to get those messages and process on these messages.
Is this possible??
Anything you understand, Plz suggest me.
Thanks.
Ashish Bhatt
|
|
|
|
|
Hi ALL,
Plz any have the code for socket programming in vc++ for dialog based application, in such a way that Receive should happen in 1 thread and send should happen through other thread.
plz help me
With Regards
Amjath
|
|
|
|
|
Amjath Rahman wrote: Plz any have the code for socket programming in vc++ for dialog based application...
There are several listed here.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Dear all,
I want to know the length of some BYTE variable (unsigned char). Here I included snippet of the code:
#include <iostream><br />
#include <string><br />
<br />
using namespace std;<br />
typedef unsigned char BYTE_T;<br />
<br />
void printLen(BYTE_T *ld_pbyteTemp);<br />
<br />
int main(int argc, char *argv[])<br />
{<br />
BYTE_T *ld_pbyteChar = new BYTE_T[50];<br />
memset(ld_pbyteChar, 'a', 50);<br />
<br />
for(int i=0; i<50; i++) cout << "i = " << i << " -> " << ld_pbyteChar[i] << endl;<br />
<br />
printLen(ld_pbyteChar);<br />
<br />
return 1;<br />
}<br />
<br />
void printLen(BYTE_T *ld_pbyteTemp)<br />
{<br />
int ld_intLen = sizeof ld_pbyteTemp;<br />
cout << "Length = " << ld_intLen << endl;<br />
}
Is there anyone know how to get the length of the "ld_pbyteTemp" in function printLen ?
Thanks before...
Regards,
Ian
|
|
|
|
|
try:
int ld_intLen = sizeof(*ld_pbyteTemp);
|
|
|
|
|
Llasus wrote: int ld_intLen = sizeof(*ld_pbyteTemp);
It didn't work. It return 1 not 50 as expected.
|
|
|
|
|
Oops, sorry I didn't notice that. As the others explained you can't obtain it just by using sizeof. You can get the size that you want only thru some changes. instead of unsigned char you can use char . And instead of sizeof() use strlen(ld_pbyteTemp) . I don't know if you'd want to change your variable though. Anyway its a simpler workaround if you really want to get the size.
Just another thing though. Since it is a char end the last element with NULL.
|
|
|
|
|
you can't. there's no safe way to get the size of a dynamic array in C/C++.
you must either pass the size of the allocated data along with the pointer, or use a container class (like std::vector) that keeps track of it for you.
|
|
|
|
|
Ok, Chris, thanks for your suggestion. As I guess it can't be measure. And the best way is passing the size of the allocated data along with the pointer. Thanks for all too...
|
|
|
|
|
Ontanggabe Parulian wrote: BYTE_T *ld_pbyteChar = new BYTE_T[50];
Did you look at the DWORD preceeding ld_pbyteChar in debug memory?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Is the OP allocating BSTR s?
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
In fact,at C/C++ RUNTIME,when you new or malloc a block memory,the system really allocate 4 bytes more than the count you want(you can find at the memory window of VC):0xFD,0xFD,0xFD,0xFD.
When you delete or free the pointer,the system will check the end of pointer you want to free,if they are not 0xFD,0xFD,0xFD,0xFD,system will indicate that block was ruined and an assert would occur!
So,you also can do your work by find the end 4 special bytes.
But you have to make sure that the block's real data does not include a four-byte sequence:0xFD,0xFD,0xFD,0xFD,if so,the result would not believable.
Make the code work well is your own job.
I am sorry,my english is poor.Have a good day!
|
|
|
|
|
Do not do this - the sentries you are talking about are only reliable in debug builds, not release builds.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Yes,you are right.
If so,transfer a length param is required.
Thank you.
|
|
|
|
|
|
Hi All,
Im implementing socket in my application.
its working fine, but my problem is i want to attach a thread for socket receive.
how can i implement this, plz help me out...
im using CAsyncSocket.
its a dialog based application.
With Regards
Amjath
|
|
|
|
|
Do you mean that you want to pass the socket to a thread for receiving? You can do that by using the thread's parameter and pass the socket variable to it.
|
|
|
|
|
First of all thanks for ur reply......
if possible plz help me through some sample code..........
can u plz do this needful help...
With regards
Amjath
|
|
|
|
|
Here's a somewhat sample code to pass the SOCKET to a thread. Hope this helps.
<br />
CAsyncSocket ListenSocket;
<br />
BOOL CClassSample::Initialize()<br />
{<br />
<br />
HListenThread = CreateThread(NULL,<br />
0,<br />
&ListenThread,<br />
(LPVOID)&ListenSocket,<br />
0,<br />
&ListenThreadID<br />
);<br />
if (HListenThread == NULL || HListenThread == INVALID_HANDLE_VALUE)<br />
{<br />
return FALSE;<br />
}<br />
}<br />
<br />
DWORD WINAPI CClassSample::ListenThread(LPVOID lpParameter)<br />
{<br />
CAsyncSocket *pListenSocket = (CAsyncSocket*)lpParameter;<br />
}<br />
|
|
|
|
|
Thank u very much dude
im new to vc++, sorry for asking such a small question
from where v can get this variable buddy "ListenThreadID"
|
|
|
|
|
Amjath Rahman wrote: im new to vc++,
So why are you trying to tackle a project that is not for beginners? Sockets or threads is a medium-difficulty project at best, but doing them in tandem is no trivial task.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Its a DWORD which holds the ID for the ListenThread.
|
|
|
|
|
Hello and good day! I created an application using VS 2005 which simply loads an image from a bitmap using a picture box (there are other functionalities involved though but that is its main function). And I was earlier told that it crashed on a different PC even though on tests it did not crash at all (2 test PCs). I can only guess that that PC's set-up could cause it to crash but still I'm looking for other reasons. One is the exit code. The application when opened and closed displays this on the output:
Program '[2788] Application.exe: Native' has exited with Code 2 (0x2).
Based on my research it said that code 2 indicates that "The system cannot find the file specified.". On start I only open a file but I don't think that was the cause of code 2. Can anyone explain to me or help me about this? Thank you for the time and help
|
|
|
|
|
Hi all. I've tried to use this but it doesnt seem to work. One time i tried it and it worked very well. The second time i tried it it didnt work. What it does is it connects well and sends the file. But problem is that there is nothing in the text file. Here is what i have so far.
<br />
#include <iostream><br />
#include <windows.h><br />
#include <wininet.h><br />
using namespace std;<br />
<br />
<br />
<br />
void FileSubmit()<br />
{<br />
char *user="user";<br />
char *pass="password";<br />
char *ftpserver="ftp.server.com";<br />
HINTERNET hInternet;<br />
HINTERNET hFtpSession;<br />
hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);<br />
hFtpSession = InternetConnect(hInternet,ftpserver , INTERNET_DEFAULT_FTP_PORT, user, pass, INTERNET_SERVICE_FTP, 0, 0);<br />
if(FtpPutFile(hFtpSession, "C:\\test.txt", "file.txt", FTP_TRANSFER_TYPE_ASCII, 0) == TRUE){<br />
cout << "File Sent! " << endl;<br />
Sleep(1000);<br />
InternetCloseHandle(hFtpSession);<br />
InternetCloseHandle(hInternet);<br />
}<br />
else{<br />
cout << "File didnt send " << endl;<br />
}<br />
}<br />
<br />
int main(){<br />
FileSubmit();<br />
return 0;<br />
}<br />
I know text files need to be sent in ASCII mode so i switched to that and it still didnt work. It uploads the file but the file is empty. Whats going on??? Thanx in advance!
|
|
|
|
|
Try opening the connection in passive mode..... I had the same problem.... worked for me.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|