|
No it is in C++ and it is
Convert::ToInt32(TimeBox->Text)
9ine
|
|
|
|
|
|
I had a line of code:
void CProtocolSimulatorDlg::OnBtnsend(bool condition1, char PortNo[10],char IPAddr[50], char Data[11])
It have error tell me that 'OnBtnsend' : overloaded member function 'void (bool,char [],char [],char [])' not found in 'CProtocolSimulatorDlg'
I do not how to solve it, can somebody help me...........
|
|
|
|
|
Tsaejen wrote:
void CProtocolSimulatorDlg::OnBtnsend(bool condition1, char PortNo[10],char IPAddr[50], char Data[11])
It have error tell me that 'OnBtnsend' : overloaded member function 'void (bool,char [],char [],char [])' not found in 'CProtocolSimulatorDlg'
I suspect this means that this function is not defined in your header file. Why are you passing char arrays around ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
I think I do wrongly already. If I got a code below:
void SendData(bool condition1, char PortNo[10],char IPAddr[50], char Data[11])
{
int _PortNo;
if(condition1)
{
_PortNo=atoi(PortNo);
SOCKET CliSocket;
SOCKADDR_IN ServAddr; // used to specify a local or remote endpoint address to which to connect a socket.
WSADATA wsaData; // Create a WSADATA object called wsaData
WORD wError; // error flag
WORD wVersionRequested; //[in] Highest version of Windows Sockets SPI support that the caller can use.
int nBytesSent, nError;
wVersionRequested=MAKEWORD(1,1); // makes a request for the version of Winsock on the system
wError=WSAStartup(wVersionRequested, &wsaData);
if(wError !=0)
{
AfxMessageBox("Windows Socket Error");
condition1=FALSE;
}
else if(LOBYTE(wsaData.wVersion)!=LOBYTE(wVersionRequested)||HIBYTE(wsaData.wVersion)!=HIBYTE(wVersionRequested))
{
AfxMessageBox("Socket Version Not Correct");
WSACleanup(); // reset
condition1=FALSE;
}
else
{
CliSocket=socket(AF_INET, SOCK_STREAM,0);
if(CliSocket==INVALID_SOCKET)
{
WSACleanup();
AfxMessageBox("Cannot Initialize Windows Socket");
condition1=FALSE;
}
else
{
ServAddr.sin_family=AF_INET;
ServAddr.sin_port=htons(_PortNo);// takes a 16-bit number in host byte order and returns a 16-bit number in network byte order
ServAddr.sin_addr.s_addr=inet_addr(IPAddr);
nError=connect(CliSocket,(LPSOCKADDR)&ServAddr,sizeof(ServAddr)); // gives the amount of storage
if(nError==SOCKET_ERROR)
{
closesocket(CliSocket);
WSACleanup();
AfxMessageBox("Cannot Connect to Display Server");
return;
}
nBytesSent=send(CliSocket, Data, lstrlen/*returns the length in bytes */(Data),0);
if (nBytesSent==SOCKET_ERROR)
{
closesocket(CliSocket);
WSACleanup();
AfxMessageBox("Send Error");
return;
}
else
{
closesocket(CliSocket);
WSACleanup();
}
}
}
}
}
Where should I write it if I design a dialog that have edit box to type message and a button to send the message?
|
|
|
|
|
Tsaejen wrote:
Where should I write it if I design a dialog that have edit box to type message and a button to send the message?
In your header file:
void SendData(bool condition1, char PortNo[10],char IPAddr[50], char Data[11]);
in your .cpp file
void MyDialog::void SendData(bool condition1, char PortNo[10],char IPAddr[50], char Data[11])
{
//etc
}
Tsaejen wrote:
_PortNo=atoi(PortNo);
Why don't you just take a number here ? Taking a char [] is a pretty ugly solution, even a char * is better IMO, but a std::string is the best non int solution, IMO.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
You mean I write the code in the header file? Or in eg:ProtocolSimulatorDlg.h or ProtocolSimulator.h? And the .cpp file also same as what I want to ask....
|
|
|
|
|
You've never added a method before ? You add the declaration in the .h ( that is, just the method signature, no code ), and the full code in the .cpp file.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
the declaration of the
void CProtocolSimulatorDlg::OnBtnsend(bool condition1, char PortNo[10],char IPAddr[50], char Data[11]) is missing in .h file
|
|
|
|
|
It seems that this declaration got deleted accidentally.
Just declare it in the header:
void OnBtnsend(bool condition1, char PortNo[10],char IPAddr[50], char Data[11]);
this is this.
|
|
|
|
|
In addition to the other suggestions, you would be wise to remove the hard-coded numbers from the parameter list (and either use empty brackets [] , or use char* instead). While syntactically correct, it just creates more work than necessary if you ever decide that the variables need to be changed to a different size.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hello
I want a dialog box to remain visible untill some loop exits. Just like, during some processing, a dialog box with "Please wait..." appears. How to do that?
Thank you
Aqueel A. Mirza
We Believe in Excellence
|
|
|
|
|
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
That's from memory, probably wrong, but it's definately SetWindowPos to make a window topmost.
The other thing is, do your processing in another thread if you want the dialog to repaint itself during the operation.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
|
hey guys i'm developing an app under visual c++ 2003 and i'm trying to retrieve the equivalent of windows' path %SystemRoot% using some function or class(i'm trying to retrieve C:\Windows or E:\WINNT or something like this). i'm also trying to add a key to the registry. i know this may be easy to do but i'm a real programming n00b.
|
|
|
|
|
|
namespaceuser wrote:
using some function or class(i'm trying to retrieve C:\Windows or E:\WINNT or something like
In Continuation With Mr. Ravi,
you can also use GetWindowsDirectory and GetSystemDirectory
"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
|
|
|
|
|
namespaceuser wrote:
i'm also trying to add a key to the registry.
How about RegCreateKeyEx() ?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
I have defined the following:
_variant_t varString ;
I would like to change this value regularly.
I am using a win32 dll and would like to do something that i would do in MFC like
std::string tag;
varString.format("C:\\Myfiles\\%s.xml",tag);
Is there any way that i can achieve the above in a win 32 environment?
|
|
|
|
|
You can use _bstr_t:
varString=_bstr_t("c:\\myfiles\\")+_bstr_t(tag)+_bstr_t("s.xml");
or you can create the string using sprintf:
char bigBuffer[1000];
sprintf(bigBuffer,"C:\\Myfiles\\%s.xml",tag);
varString=_bstr_t(bigBuffer);
Hope that helps.
|
|
|
|
|
the application crashed on pTthread 0x01430140{CWinThread h=0xfeeefeee proc=0xfeeefeee}, in the C:\...\VC98\CRT\SRC\DBGHEAP.C, _ASSERTE(pHead->nBlockUse == nBlockUse);
then it will report the memory leak and stop debug, but release works fine. it should be a bad pointer somewhere?
dbName::dbName()
{
m_pdbf = NULL;
}
dbName::~dbName()
{
delete m_pdbf;
}
after delete m_pdbf, m_pdbf will still contant the address, is it what causing the problem? thanks!
|
|
|
|
|
valerie99 wrote:
after delete m_pdbf, m_pdbf will still contant the address, is it what causing the problem?
No, because the dbName object (and thus its m_pdbf member) is being destructed, anyway.
If you break in the debugger when the assertion fails, does the call stack trace back to this destructor? If so, you might be deleting an invalid dbName object, or doing so through an invalid dbName* ; check the value of the this pointer in the context of the destructor.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Thanks for your reply.
the call stack couldn't trace back on any part of my code except MFC, but assertion failed is happening around destructor been called.
I just checked the this pointer in the contest of destructor "0X0012f844", the value of m_pdbf is "0X013afef0"......thank you!
|
|
|
|
|
Try setting a breakpoint in the destructor, and each time it breaks, inspect the content of the dbName object and the object pointed to by m_pdbf, and check the call stack to see from where the destructor is being called. When the program crash, try to relate it to what you observed last time the destructor was executed.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
seems like assertion failed right after clean up the local thread in c:\...\MFC\SRC\THRDCORE.CPP, in function AfxTermThread();
could it be the wrong thread been cleaned up causing the problem?
thanks.
|
|
|
|