|
Try something like this
closesocket(m_hSocket)
where m_hSocket is data member from CAsyncSocket.
|
|
|
|
|
Hi ! I am using VC++ 6.0. SP 4.0. , my COM application uses CAsyncSocket
, and when I try to close the socket (method Close()), I get
"Debug assertion failed"
File:sockcode.cpp
Line:483 // this is "CAsyncSocket::KillSocket(m_hSocket, this);"
There was a solution to a similar problem in MSDN article (Article ID:
Q139693 ) but I tried this and in my case it doesn't work.
I am at a loss. What can I do about it ?
Thanx in advance.
|
|
|
|
|
Hello Everybody,
Can any one tell me a way to register my program into the startup so that it
can be executed automatically as soon as the system is booted ?
I want to do this for dispalying a icon on the system tray to control my
program ( just like the Volume Icon in the system tray for adjusting Volume
).
Thanks in advance.
|
|
|
|
|
In registry at
[HKEY_LOCAL_MACHINE]\Software\Microsoft\Windows\CurrentVersio\Run\
Add a string value ... Look at the entry that are already exists.
Doesn't matter windows version
/REMUS
|
|
|
|
|
Hello!
I am new to programming in VC++ and I have a problem with
the MSHFlexGrid 6.0.
I have three edit-fields and a FlexGrid with three columns.
When I push a button the entries from the edit-fields shall
be put in the columns of the grid and a new row must be
added. I thought I can do this with the AddItem-method, but
I couldn´t get it working.
The syntax is:
Object.AddItem(LPCSTR item; const Variant &);
What must I enter for the second term? Or do you have any
other ideas how I can solve my problem?
Thanks for reading,
Stefan
|
|
|
|
|
The method should describe the variant type
For example if you need a BSTR as variant type you need for second parameter
CString strString = "Your Text";
VARIANT va;
VariantInit(&va);
va.vt = VT_BSTR;
va.bstrVal = strString.AllocSysString();
Object.AddItem("Whatever",&va);
For other type of variant initialze proper memeber of VARIANT . vt memeber will descibe what member will be used
and you will initialize that one (could be more)
Best regards,
/REMUS
|
|
|
|
|
Hi, i've just begun to learn visual C++ and i am having problems with loading a list of objects, (which are stored in a text file), and displaying them in a List Box. I've looked through two books to try and get an efficent and understandable (to me) way of doing this and have come up with either trying to do this with serialization or using the standard windows i/o of CreateFile() to open the file and ReadFile() to (obviously) read from the file but it is explained poorly in both my books and so i haven't been able to get very far. If anyone has any form of tutorial to point me at or has some time they could spend to explain a method/methods of File I/O in windows I would be most gratefull.
|
|
|
|
|
I also have struggled with C++ I/O .... but this should
do the trick :
1) at the top of your cpp file, add the following lines :
#include "fstream.h"
#define MAX_CHARS_PER_LINE 80 // maximum number of characters
2) create a CONTROL variable for your list box (m_list1 in this example)
3) to read the input file and add to the list box :
char line[MAX_CHARS_PER_LINE];
ifstream infile;
infile.open("list.txt");
while (!infile.eof())
{
infile.getline(line,MAX_CHARS_PER_LINE);
m_list1.AddString(line);
}
infile.close();
|
|
|
|
|
Thanks, i figured out how to accomplish the same thing using serialization. It looks similar to this:
// This is the saving Routine
CFile f;
f.Open("PrefsFile", CFile::modeCreate | CFile::modeWrite);
CArchive ar( &f, CArchive::store );
ar << m_CurrentCount; // Number of objects being saved
for(int i = 0; i<m_currentcount ;="" i++)
="" ar="" <<="" prefs[i];="" this="" saves="" each="" object
="" ar.close();
="" f.close();
="" is="" the="" loading="" routine
="" cfile="" f;
="" f.open("prefsfile",="" cfile::moderead);
="" carchive="" ar(="" &f,="" carchive::load="" );
="">> m_CurrentCount; // Number of objects to load
for(int i = 0; i < m_CurrentCount ; i++)
ar >> Prefs[i];
ar.Close();
f.Close();
|
|
|
|
|
I'm working on a paint program, and want my File|Open dialog to allow loading of jpg, bmp, ( NOT gif, if UNISYS is watching ;o) ) so I have created multiple document templates. The problem now is that when I click File|New I get asked what sort of document I want to create. Can anyone suggest a way to get around this problem ? I've tried overriding OnFileOpen in the Document class, but that works only AFTER the first file has been loaded or created.
Thanks
Christian
|
|
|
|
|
You should override CWinApp::OnFileNew(). MFC technical note 22 has a little bit about this.
|
|
|
|
|
Hello, codeguru around the world.
Visual C++ 4 HOW-TO by Scott Stanfield with Ralph Arvesen
has something to resolve this answer.
I just write the sentense as it is.
4) Add a string resource.
Using App Studio, make a copy of the existing string resource IDR_LINESTYPE and change the ID to IDR_DEBUGTYPE.
The caption for the IDR_DEBUGTYPE is not identical to IDR_LINESTYPE. Modify it and remove the second, "Lines" to prevent the framework from thinking we have more than one document type. Otherwise, you would end up with the dialog box - the unwanted file new dialog box.
Good luck for your project.
-Masaaki Onishi-
|
|
|
|
|
hi guys,
i am trying to parse a c++ header file to get the information abt all the classes and their respective functions declared in them.
i am not able to get the position of starting and clsoing braces for a class definition. i know this can be done using stack/recursion, but i couldn't write it.
any help in this reagrd will be highly appreciated.
thanx in advance
mukesh.gupta@promap.co.uk
|
|
|
|
|
This is actually simpler than it would at first seem. You can use the stack based approach but I would go for a more stuctured implementation if I were you.
I have just finished a little project of implementing an interpreter for VB code. It doesn't cover the whole syntax but it does some cool stuff anyway.
I wrote the parsing code using BISON and FLEX. You may have heard of these before. FLEX is a lexical analyser generator and BISON is a parser generator. Both of these program generate valid C code which is ready to be incorporated into your program.
All you do is define the set of tokens used in the language to be parsed and then define a set of ways in which these tokens can be put together in the language. The ways in which the tokens can be used in the language are called the productions. E.g. for C++, the tokens would contain
" , ( ) void int long struct class { } =
And a production for the use of a built in type would be
BuiltInType : INT
| LONG
| DOUBLE
| FLOAT
| VOID
| etc etc etc;
This states that a Built in type is one of the tokens in the list. The "|" means OR. So a built in type is an int OR a aloat OR a void etc.
You can then define, in a BISON script, what C code is to get run when one complete production is found in the input buffer.
Because the script is written by you, you can have the output C code contain anything you want. In your case, when the "IveFoundAMethod" production is run you will want to save the relivant information about that method for use elsewhere in your program.
BISON and FLEX produce code that can be used in VC++. There are some very small changes to make to the generated code but they are only small and fairly self explanitory.
I know that you can find them for download if you search on Yahoo for "BISON FLEX".
Hope this helps
|
|
|
|
|
how can I prevent the user the adjust/resize the window with mouse?
thamks in advanced
guy
|
|
|
|
|
Try to read help for function
SetWindowPos
you have a flag named
SWP_NOSIZE
/REMUS
|
|
|
|
|
thanks remus for your help
i've tried it before and it didn't work,so
i will try again
thanks anyway
|
|
|
|
|
Handle the WM_GETMINMAXINFO message. This message passes you a struct, and you can just fill in the min size and max size with the same values, so the window will remain the same size.
The mouse will still change to the resizing-arrow cursor when you move it over the window border, so to fix that, handle WM_NCHITTEST and if the cursor is over the resizing border, return HTNOWHERE from the message.
|
|
|
|
|
hey remus & mike
i found a solution
i've used the modifystyle function to
remove flags ws_thickframe|ws_maximizebox
and that did the job
thanks again for your support,if you'll ever need
anything you know my address
Guy ,Israel.
|
|
|
|
|
I have derived a small class from CStatic, it does what I want it to so far. But my problem is this:
I need to create a MessageBox everytime the Control is clicked. I've tried using OnLButtonDown() but this doesn't seem to work.
Any help is great
Thx
|
|
|
|
|
Hi Tim,
I think a STATIC window must have the style SS_NOTIFY to notify mouse clicks. So add it to the window's style in your derived class PreCreateWindow or PreSubclassWindow (with ModifyStyle).
You may catch BN_CLICKED reflected message to do what you wish.
Cheers,
Paolo.
|
|
|
|
|
Hi Everyone,
I'm using Visual C++6 and have this problem and hope you can help me out!
What I'm trying to do is to read data from a TEXT FILE and plug the values into a CString, which will be used as a SQL statement.
For example, let's say I have the follwing data in a TEXT FILE:
(the format used for the TEXT File is that the fist row
will be the tablename, and then the following rows will
be the field names and its attributes, and the field
names and attributes will be separated by a comma)
CustomerName
CustID, INTEGER
FirstName, STRING
LastName, STRING
etc...
How can I read the values from the TEXT FILE one by one so at the end, I'll come up with a statement such as:
SQL= "CREATE TABLE CustomerName(CustID INTEGER, FirstName STRING, LastName STRING, etc...)"
I would like to put the reading of the values from the TEXT FILE into a loop so that no matter how many FIELDS the text files contain, the loop will be able to handle it and put all the values into a SQL statment.
For example, if I have the following int the TEXT FILE:
(3 FILEDS and 3 VALUES OF THE FIELD)
CustomerName
CustID, INTEGER
FirstName, STRING
LastName, STRING
Then the following would occur:
SQL="CREATE TABLE CustomerName(CustID INTEGER, FirstName
STRING, LastName STRING)"
BUT if I only have 1 FIELD AND VALUE:
CustomerName
CustID, INTEGER
The reading of the TEXT FILE will be dynamic and the SQL would be:
SQL="CREATE TABLE CustomerName(ID INTEGER)"
Hope you can understand what I'm trying to do.
I've tried to do it in a loop myself but I had some trouble, so If anyone has any solutions, PLMK! Thanks!
Steve
|
|
|
|
|
Hi Steve,
This is not the best code I've ever wrote, but I hope it can help you.
Assuming that the first line is always the table name, you could do something like this:
--struct.txt
CustomerName
CustID, INTEGER
FirstName, STRING
--code
CStdioFile f;
CString sLine, sSql;
int nLine = 0;
sSql = "CREATE TABLE ";
f.Open("struct.txt", CFile::modeRead);
while (f.ReadString(sLine)) {
if (sLine.GetLength()) {
if (++nLine == 1) {
sSql += sLine+'(';
} else {
sLine.Replace(",", "");
sSql += sLine+',';
}
}
}
sSql.SetAt(sSql.GetLength()-1, ')');
f.Close();
AfxMessageBox(sSql);
Regards,
Wanderley
|
|
|
|
|
Hi everyone!
I am in dire need of .ICO and .ICL (Icon Library) spec sheets. I haven't been able to find them anywhere. The main reason for this is the fact that LoadImage() has a bug when loading high-colour icons (though, i do need the .icl specs). fyi. it produces the following error (in debug mode):
HEAP[ZiTest.exe]: Heap block at 00137F20 modified at 00137F54 past requested size of 2c
|
|
|
|
|
I have added icons to the systray, but these icons only have
16 colors, so I want to know that if I can put icons 256 colors icon to the systray.
By the way can I put an CWnd to the systray?
|
|
|
|