|
Hello,
I don't know the exact meaning of those addresses, but they have something to do with uninitialized or already deleted pointers.
The rule of thumb is that you do not spread your memory management across different modules, that is, you should not allocate a block in your DLL A and free it in another module. Your problem might be here. Maybe you should make a copy of a memory block when it's saved across module boundraries.
Hope this helps.
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
Thank you for your comments. I would reconsider the memory management.
Sovann.
|
|
|
|
|
|
Thank you very much for your comments.
I have read them all. My problem was direct access to STL object in other module. Now I am working on it.
Thanks again. Have a nice day!
|
|
|
|
|
Hi all. I m using sockets to send file or strings in a TCP/IP simple client/server configuration. The question is, how do i let the sender differentiate b/w sending files and strings? I've read that people send ACK as a ascii character to acknowledge packets. Can i use this as a method to let the receiver know its receiving a file instead?
Pls help me!
|
|
|
|
|
You can use any kind of mutually agreed technique. So that both the client and server understand what happening.
Happy christmas friends. May the Love of My Lord and Saviour Jesus bring forth Joy and Happiness into your life too.
<marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" hspace="2" vspace="2">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
|
|
|
|
|
i Dont remember any specific method IN TCP/IP for file or string
u can use a series of NULL char . Using the ACK might create
ambiguity in some case.
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
ok thanks. I'll try out these methods. Btw, does anyone know of any good Winsock programs on this area? Cos i could only find tutorials on simple string sending but not on both.
|
|
|
|
|
Assuming that the files you are sending back and forth could contain arbitrary data, you can't use a simple marker character to signal a switch between sending strings and files.
A better approach is to define a message format that tells the receiver what type of data is coming. Here's an example:
struct Message {
enum {
String,
File
} Type;
unsigned int Length;
unsigned char Data[1];
}; The first value, Type , tells the receiver what kind of data is coming. The Length value specifies the amount of data to expect. The third value, Data , is actually just a placeholder for the actual data, which will be Length bytes long.
Software Zen: delete this; // <a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" rel="nofollow">Fold With Us!</a>[<a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" target="_blank" rel="nofollow" title="New Window">^</a>]
|
|
|
|
|
This sounds pretty hard to understand for me as i m new to sockets programming and also c++. Have only previously handled some simple programming in c. Could u pls provide me with more details or example?
Thanks for providing me with something anyway.
|
|
|
|
|
The way this works is that everything that is sent on the socket is a message. The sender will send a type, a length value, and the number of data bytes specified by the length. The receiver does the corresponding. It reads the type value, then the length, and then reads the number of data bytes specified by the length. Using this approach, you always know what type of data is being sent by the other end of the connection, and how big it is.
I would suggest making two simple test programs, a client program and a server program. You can run both of them at the same time on the same machine using IP address 127.0.0.1. You can then debug both of them simultaneously.
You might try looking at the articles in the Internet & Network Programming[^] section of Code Project. There are a number of good examples of this kind of approach.
Software Zen: delete this; // <a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" rel="nofollow">Fold With Us!</a>[<a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" target="_blank" rel="nofollow" title="New Window">^</a>]
|
|
|
|
|
In the midst of trying to develop a protocol which can differentiate string/file, i found out that the routine i modified from the website for send file was actually not working!
Below are part of my receiver code which i used for my CAsyncSocket. So i isolated the send string part and juz tried to produce a working part for file transfer. It seems that i have problem receiving the file when i tested e program with messagebox inside the routines. The new file was created at the destination but its just an empty file with 0 bytes.
void CSockDlg::OnReceive()<br />
{<br />
<br />
char* pBuf=new char[1025];<br />
int iBufSize=1024;<br />
int iRcvd;<br />
<br />
CString strLocalFileName;<br />
iRcvd=m_sConnectSocket.Receive(pBuf,iBufSize);<br />
pBuf[iRcvd] =NULL; <br />
strLocalFileName=pBuf;<br />
<br />
AfxMessageBox("U get this notification?");<br />
m_strFileName=strLocalFileName;<br />
BOOL bRet = GetFileFromRemoteSender(strLocalFileName );<br />
}
Pls help me out! Being stuck for days now.
|
|
|
|
|
Dear all,
I have tried to get the drive letter of specific USB device. Below is my code. I cannot get a proper return value from DeviceIoControl. Please help and advice me how to make it work. Thanks.
TCHAR diskletter[10];
for(char le='C';le<'T';le++)
{
drive.Format ("%c:",le);
if(GetDriveType(drive)==DRIVE_FIXED||GetDriveType
(drive)==DRIVE_REMOVABLE)
{
sprintf(diskletter,"\\\\.\\%c:",le);
HANDLE handle;
handle=CreateFile(diskletter, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,OPEN_EXISTING, NULL, NULL);
if (handle = INVALID_HANDLE_VALUE)
MessageBox("Open device failed");
else
{
STORAGE_DEVICE_DESCRIPTOR pDevDesc;
STORAGE_PROPERTY_QUERY Query;
DWORD dwOutBytes;
BOOL bResult;
Query.PropertyId= StorageDeviceProperty;
Query.QueryType = PropertyStandardQuery;
bResult=DeviceIoControl(handle,
IOCTL_STORAGE_QUERY_PROPERTY,
&Query, sizeof(STORAGE_PROPERTY_QUERY),
&pDevDesc, pDevDesc.Size,
&dwOutBytes,
(LPOVERLAPPED)NULL);
if(!bResult)
MessageBox("Get bus type failed");
if(pDevDesc.BusType == BusTypeUsb)
m_Editi=m_Editi+le;
CloseHandle(handle);
}
}
|
|
|
|
|
hi all!
my objective will be implement setup application (copy fonts and usp10.dll ) on Win XP.
i need replace file usp10.dll with new version but WinXP has a file protected mode. how could i deal that problem, please give me an advice.
|
|
|
|
|
Hello,
I recently upgraded my IDE to vc++2005 from vc++6.
I used to write windows services using the ATL Com AppWizard (and choose "service" as the server type).
My problem is that now, in vc++2005, I can't find any wizard for creating a windows service using only native (not managed) c++ code.
The only wizard exist in this new IDE creates a managed code project.
Do you know any way of creating windows services in vc++2005 using only unmanaged code?
Thanks.
|
|
|
|
|
Could someone please quide me to an example where MFC will open a text file (.txt) internally within the app. itself for viewing. I am using the VC++ MFC App. win. expoler to do this.
the path of the text file will always be fixed, so i need to know how to read the text file and display it in "read only format" internally on the right pane of the app. once the user clicks display in my UI
Thank you for you help!
|
|
|
|
|
There is a CP article here on a text file reading class that can even open UNICODE files. I would look for it on CP and use it in your project.
No shirt, no shoes, no brains, no service.
|
|
|
|
|
Thank you, i am searching for it now!
|
|
|
|
|
I am trying to write an apps launcher that will also allow sequencing through the running apps User Interfaces. I want it to work something like the MS Office Launch Bar where a button selects the desired app.
I don't know how to launch an app from within an app, or how to bring an app to the foreground.
Any suggestions (or where to find further help) would be appreciated.
cgb143
|
|
|
|
|
SetForegroundWindow and CreateProcess are going to be your friends.
No shirt, no shoes, no brains, no service.
|
|
|
|
|
Doing something wrong.
I created a new MFC APP Wizard(exe) project
Added a button to the default dialog box, which generated
BEGIN_MESSAGE_MAP(CTutorDlg, CDialog)<br />
ON_WM_SYSCOMMAND()<br />
ON_WM_PAINT()<br />
ON_WM_QUERYDRAGICON()<br />
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)<br />
END_MESSAGE_MAP()
I added the CreateProcess
void CTutorDlg::OnButton1() <br />
{<br />
CreateProcess("c:\\prog1\\prog.exe",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);<br />
<br />
}
But it all crashes when I press the button
(MFC Application has encountered a problem and needs to close.
We are sorry for the inconvenience)
What am I missing (apart from the knowledge )
|
|
|
|
|
Some of the last couple arguments to CreateProcess can not be NULL.
There are a few articles here on CP that can lead you through using CreateProcess.
Otherwise, this should work fine and looks okay.
No shirt, no shoes, no brains, no service.
|
|
|
|
|
You're doing great so far .
When I click the button the app launches. I lose focus on the launch prog and the graphics are erased.
Also (going back to the original query) how can I launch/control multiple apps.
I looked at some of the articles and they really helped but I can't find this.
|
|
|
|
|
When you start another application that way, the new application typically gets the focus. If you don't want it to get focus, use some of the start up flags so the new application's window starts minimized, or SHOW_NA which means to start it in normal window position, but it should not take focus.
What do you mean by control multiple apps? What is it you need to control?
No shirt, no shoes, no brains, no service.
|
|
|
|
|
Multiple copies of the same app , installed in different folders.
I have written an (inhouse) app that communicates with other equipments via RS232 COMMS ports.
Using a port expander I can run up to 6 copies of the app on a single PC (using a local data file to provide Comm Port assignments) thus requiring less PCs. Currently the user navigates to the folder of each installation to execute (or has links on the desktop). I was trying to create a launcher app that would manage the (up to) 6 copies, as the display gets very cluttered.
|
|
|
|