|
Hi,
I would like to have some help in my project...I am making an application that takes an image from a Twain source supposing the image is in JPG format (or i can accomodate other format) and then compare it with the image already present in image database. The user enters the ID and comparison is just with one image. Kindly tell me what kinda techniques I shoud use and If you have done this kind of project then I will be glad to contact you...Leave me a message ....Urgent Please....
Clouds Drift all around bringing hope of rain but it rains only at one place. Keep your hope alive...
|
|
|
|
|
Hi, everyone!
I am a newbie of VC7.0 and I want to use
it to dDeveloping win32 console application. I
want to know whether there are some tutotrials dealing
with the following things:
1. How to develop a win32 console application
using VC7.0
2. How to debug a win32 console application using VC7.0
3. VC7.0 IDE usage related to console application
Where can I find them?
BTW: I am using VS.Net Professional Edition.
Thanks in advance,
George
|
|
|
|
|
What exactly do you want to know? There is nothing special about console programs (unless you want play with console allocation, buffers etc.). You can use Win32 App wizard to create one. You debug it same way you do any other program. The best way to try is to create one and run through VC debugger. I recommend MSDN for information and samples.
|
|
|
|
|
Thanks, AlexO buddie!
George
|
|
|
|
|
Hello,
I'm looking for Property Grid Control similar to VB6 Property Editor for my application.
Can you recommend me anything?
|
|
|
|
|
There is a pretty good one at http://www.aircom.org.
Cheers
|
|
|
|
|
I need to transmit an STL set to my Cdialog from MDIView. SO I did:
LRESULT CSTrainView::OnUDMKeywordsToView1(UINT setPtr, UINT nDummy)
{
std::set<CString>& SetSent = *setPtr;
int u = SetSent.size();
where
std::set<CString> testSet;
testSet.insert("a1");
testSet.insert("a2");
testSet.insert("a3");
POSITION pos = pDoc->GetFirstViewPosition();
while (pos!=NULL)
{
CView* pView = pDoc->GetNextView(pos);
ASSERT_VALID(pView);
;
pView->SendMessage(UDM_KEYWORDSTOVIEW1,(unsigned int)&testSet,0);
The compile error:
TrainView.cpp(1662) : error C2100: illegal indirection
TrainView.cpp(1662) : error C2440: 'type cast' : cannot convert from 'unsigned int' to 'class std::set<class CString,struct std::less<class CString>,class std::allocator<class CString> >'
What do I need to do to get this to work?
Appreciate your help,
ns
|
|
|
|
|
LRESULT CSTrainView::OnUDMKeywordsToView1(UINT setPtr, UINT nDummy)
{
std::set *SetSent = (std::set *)setPtr;
int u = SetSent->size();
rechi
|
|
|
|
|
That was the solution! Thank you so very much!!!!!
Appreciate your help,
ns
|
|
|
|
|
...your object is statically allocated. Generally, it's better to allocate it dinamically when you use PostMessage because the receiver might be some other thread.
Anyway, i'm glad to know that it worked!
rechi
|
|
|
|
|
Is a CDialog spawned from an MDI View considered a different thread? The CDialog is going to send to and receive from the parent View
Appreciate your help,
ns
|
|
|
|
|
ns wrote:
Is a CDialog spawned from an MDI View considered a different thread?
No, this time you're safe. They are two different pictures sharing the same thread.
I think you should follow AlexO's advices now, they're highly appropriate for your job.
rechi
|
|
|
|
|
okay. I am setting up a SetDataInDlg() method to see if I can communicate. Thanks to both of you...
Appreciate your help,
ns
|
|
|
|
|
Disclaimer : I think it is a bad idea (stl pointer in sendmessage). The problem your are fighting
ns wrote:
std::set& SetSent = *setPtr;
should be
std::set<Type > & SetSent = *reinterpret_cast<std::set<Type
> * >(setPtr);
|
|
|
|
|
Well, I dont know what else I can do....the way things are I have a pDOc set that needs transmitted to a CDialog.....what other mechanism is there that I might be missing? the set changes all the time and the CDialog has to reflect the changes instantaneously...
Appreciate your help,
ns
|
|
|
|
|
Actually I did have the Type but CP formatting didnt show the angled brackets....
Whats bad about sending in an stl ptr?
Appreciate your help,
ns
|
|
|
|
|
1. Casting complex C++ type to ULONG is dangerous (even pure template like std::... without vtbl) you might loose type info this way.
2. You pass the pointer, but never checked if it is zero.
3. You introduce level of complexity that might not be necessary. myDialog.SetData() might work better for you.
You will appreciate that during maintenance phase (2 years down the road )
|
|
|
|
|
Thanks for pointing out the dangers..
Oh Are you saying I should make a SetDAta method in my CDialog class and call it whenever? ? Cos I didnt see it in the docs
|
|
|
|
|
hi,
i've designed a program that runs as an server. If a connections request comes the program opens a thread that handles the commands for this connection.
This new thread construct a class that has all the thinking capabillaties for the thread, it also constructs a Class that handles the connection events(sending information/encrypting it and so on). The thread also receives the pointer to a "database server"(a class that handles all commands for the database) and sends it to the constructed class. Wenn a connection is made there will also be a Session-struct constructed(this hold all info about the connection, login-name/login-pass and so on).
The session is constructed as a "new" struct, wenn the thread ends the session is "deleted" so is doesn't remain in the memory.
if i run this program, and login and out a few hundred times the memory that is taken by the server seems to be growing... what can i doe to prevent this?
wenn the thread ends is the constructed class fully removed out of the memory? or do i have to do it myself?
thread code:
<small><br />
<br />
UINT ClientThreadRecv(LPVOID Client)<br />
{<br />
CCrypt Crypt; <br />
char Block[BlockSize]; CString Data, TData; // the final variable for storing the received data<br />
int loc;<br />
int namelen = sizeof(sockaddr_in);<br />
sockaddr_in name;<br />
char *ip;<br />
<br />
SOCKET client = (SOCKET)Client; <br />
getpeername(client, (sockaddr *)&name, &namelen);<br />
ip = inet_ntoa(name.sin_addr); <br />
CGebruikersStruct *Session = new CGebruikersStruct; <br />
Session->client = client;<br />
Session->LoginNaam = "";<br />
Session->LoginPass = "";<br />
Session->LoggedIn = FALSE;<br />
Session->Rechten = 0;<br />
Session->IPadres = ip;<br />
<br />
CClientSocket ClientSocket; <br />
ClientSocket.Session = Session;<br />
ClientSocket.DatabaseServer = DatabaseServer; <br />
CClientClass ClientClass; <br />
ClientClass.ClientSocket = &ClientSocket;<br />
<br />
ClientSocket.ConnectionBegin(); while(true)<br />
{<br />
<br />
loc = recv(client, Block, BlockSize, 0); <br />
if ((loc == -1) || (loc == 0)) <br />
{ break; }<br />
Block[loc] = 0;<br />
<br />
Crypt.DeCrypt(Block, Block); TData += Block; // add all data into 1 big variable<br />
if (TData.Mid(TData.GetLength() - EndKey.GetLength(), EndKey.GetLength()) == EndKey) {<br />
if (ClientClass.ExcuteCmd(TData) == FALSE)<br />
{ break; } <br />
TData = "";<br />
}<br />
<br />
}<br />
ClientSocket.ConnectionEnd(); <br />
delete Session; <br />
<br />
closesocket(client); return 0; // ends the thread<br />
}<br />
<br />
</small>
[]D [] []D []
|
|
|
|
|
Am sorry, i found the memory leak, it wasn't the code in the thread but it was a piece of code in the checking for the right ip. i used a linked list to check it the ip that tries to log in has been banned from the server. it seemed that i kept deleting the ip from the database while it wasn't even in the database. this also explains why the log-on procedure took about 20 too 40 ms, while i'm only working with linked lists.
i changed the code to delete the ip from the database only if it is found in the linked list(mirror to the database), now my logon procedure is takes < 5 ms(the computer says it takes 0 ms so... ).
[]D [] []D []
|
|
|
|
|
Hey Code Gurus
I'm pretty new with the language, but I'm ready to learn.
Are there any tutorials that deal with basic http protocal handling and socket connections?
I want to build 2 simple programs.
1. A program that sits on top of a socket and bounces strings through the HTTP stream. Basically an incredibly simple web-server.
2. A small program that opens an HTTP connection and recieves everything from that connection.
I don't really know where to start.
Anyway, thanks folks.
|
|
|
|
|
I highly recommend Network Programming for Microsoft Windows, Second Edition by Anthony Jones and Jim Ohmund.
For HTTP: http://www.w3.org/Protocols/rfc2068/rfc2068
Kuphryn
|
|
|
|
|
Hi everyone,
i want to add tool tips in a CFormView(SDI) program.How can i do that?
|
|
|
|
|
Call EnableToolTips(TRUE) in the OnIntiialUpdate()
// in header file
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT * pResult);
// add this to your message map
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
// add the tooltip text for each IDC of a cntrol on your form. Note that all CStatic objects must have the SS_NOTIFY style set in the resources to get a tooltip for them.
BOOL CYourFormView::OnToolTipNotify(UINT , NMHDR *pNMHDR, LRESULT * )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
if (pTTT->uFlags & TTF_IDISHWND)
{
CRect rctTemp;
CPoint pntMouse;
GetCursorPos(&pntMouse);
UINT nID = ::GetDlgCtrlID((HWND)pNMHDR->idFrom);
pTTT->lpszText = NULL;
switch (nID)
{
case IDC_TITLE :
pTTT->lpszText = "Tray setup title";
break;
case IDC_NEW_ASSAY :
pTTT->lpszText = "Create new assay in selected position";
break;
}
if (pTTT->lpszText != NULL)
{
return(TRUE);
}
}
return(FALSE);
}
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
Note that this might not work too well for ActiveX controls, if there are any on the form. I dd something similar, and you don't seem to get anything for an ID for the ActiveX controls on a form, so you have to keep track of their window handles.
|
|
|
|