|
I need to swap the bytes in a struct because of little/big endian problems. Can I use swab on a struct? Is there another function or macro I can use to get around this problem?
Thanks,
Bryan
|
|
|
|
|
void SwabShort(void* wp)
{
BYTE* cp = (BYTE*) wp;
int t;
t = cp[1]; cp[1] = cp[0]; cp[0] = t;
}
void SwabLong(void* lp)
{
BYTE* cp = (BYTE*) lp;
int t;
t = cp[3]; cp[3] = cp[0]; cp[0] = t;
t = cp[2]; cp[2] = cp[1]; cp[1] = t;
}
SwabShort(&myShort);
SwabLong(&myLong);
-c
Though the cough, hough and hiccough so unsought would plough me through,
enough that I o'er life's dark lough my thorough course pursue.
--Stuart Kidd
|
|
|
|
|
thanks... works like a charm
|
|
|
|
|
I have multiple CFormView windows in a MFC Doc/View application that uses a Multiple View CSplitterWnd based class to switch out views in two of the panes. To control the app, I need to pass messages between views. I have a central control class embedded in the app's CDocument derived class that controls all the views (and maintains access to pointers to the CFormView window object via the Splitter based class).
Anyway, to the question - Should I:
1) Pass messages to the CFormView class DIRECTLY via a "virtual int SendViewMessage(...)" method since I have direct access to the CFormView based Objects;
or 2) Should I post the messages via normal Windows Message (RegisterWindowMessage) to the CFormView and let the CFormView derived classes hanlde via Message Map.
I'm not sure of the consequences of the DIRECT approach as far as the MFC Doc/View framework is concerned. I see CDocument and CView calling methods directly in MFC rather than passing messages. Is there a rule on this somewhere ???? Or, since all Doc/View framework in the same thread, does this matter at all ????
Any info would be appreciated !!!!!!
Thanks,
John
|
|
|
|
|
John Gilbert wrote:
I'm not sure of the consequences of the DIRECT approach as far as the MFC Doc/View framework is concerned. I see CDocument and CView calling methods directly in MFC rather than passing messages
There are none. You're free to invent any mechanism of data exchange between views. Or - you can use existing one - the CDocument::UpdateAllViews which gives you enough flexibility.
I'd go for UpdateAllViews first, then for custom virtual function and if this doesn't fit your model, for Windows messages.
Tomasz Sowinski -- http://www.shooltz.com
"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.
|
|
|
|
|
Thanks, UpdateAllViews() will probably do the job. I did not realize that UpdateAllViews() has two user type parameters that I can use to pass my control data.
Also, someone reminded me that the CFormView Object and the actual Window are two different things. So a "Direct" call (as I was calling it) goes to the object which will eventually pass messages to the attached window anyway. I knew that , but was getting lost in the Doc/View world .
Thanks for your time to respond !!!!!
John
|
|
|
|
|
I'm trying to rename the exiting folder, let's say folder1 to folder2
then I create a new folder called folder1.
1) but my renaming, rename(), method doesn't work, it only works for renaming file name. not for folder name.
2) a new folder didn't get created..
what's wrong..
here's my code
<br />
#include <direct.h>
<br />
void JobAction::renamefolder(char *oldpath)<br />
{<br />
<br />
cout<<" renaming folder"<<endl;<br />
<br />
char newpath[_MAX_PATH];<br />
strcpy(newpath,oldpath);<br />
int oldpathlen = strlen(oldpath);<br />
newpath[oldpathlen]=NULL;<br />
<br />
<br />
parseAstring(newpath,'\\',RIGHT);
<br />
strcat(newpath,"\\output1");
cout<<"oldpath: "<<oldpath<<endl<<"newpath: "<<newpath<<endl;<br />
<br />
rename(oldpath,newpath);
createDirectory(newpath);<br />
<br />
<br />
}<br />
<br />
<br />
bool JobAction::createDirectory(char *dir)<br />
{<br />
<br />
if(strlen(dir) > 3)<br />
{<br />
parseAstring(dir,'\\',RIGHT); <br />
cout<<dir<<endl;<br />
createDirectory(dir);<br />
} <br />
_mkdir((const char*)dir);<br />
return true;<br />
}<br />
thank you
|
|
|
|
|
Use
int SHFileOperation(<br />
LPSHFILEOPSTRUCT lpFileOp<br />
);
Mustafa Demirhan
http://www.macroangel.com
Sonork ID 100.9935:zoltrix
<nobr>They say I'm lazy but it takes all my time
|
|
|
|
|
Return Value
Each of these functions returns 0 if it is successful. On an error, the function returns a nonzero value and sets errno to one of the following values:
EACCES
File or directory specified by newname already exists or could not be created (invalid path); or oldname is a directory and newname specifies a different path.
ENOENT
File or path specified by oldname not found.
EINVAL
Name contains invalid characters.
For other possible return values, see _doserrno, _errno, syserrlist, and _sys_nerr.
Remarks
The rename function renames the file or directory specified by oldname to the name given by newname. The old name must be the path of an existing file or directory. The new name must not be the name of an existing file or directory. You can use rename to move a file from one directory or device to another by giving a different path in the newname argument. However, you cannot use rename to move a directory. Directories can be renamed, but not moved.
_wrename is a wide-character version of _rename; the arguments to _wrename are wide-character strings. _wrename and _rename behave identically otherwise.
Check errno to see what the error was.
Todd Smith
|
|
|
|
|
Hi
My application is C++ using MFC, generated by VC6++ AppWizard (exe), is a MDI and has a CView and a CScrollView in a splitted window. It has the usual status bar generated by the AppWizard.
Now I want to add a second status bar right above the first one.
Until now I just "duplicated" the code of the CStatusBar in MainFrm.h and MainFrm.cpp - and it works: the status bar is there, I can define and access several panes.
The problem is: the second status bar although has this "resizing triangle" - which produces unwanted effects when used.
The question is: how to remove this "resizing triangle"?
Screenshot is here.
Thanks,
Matthias
|
|
|
|
|
TeeTeeHaa wrote:
The problem is: the second status bar although has this "resizing triangle" - which produces unwanted effects when used.
The size grip appears because the parent window is resizable. trace into the CStatusBar::Create() and you will see:
if (pParentWnd->GetStyle() & WS_THICKFRAME)<br />
dwStyle |= SBARS_SIZEGRIP;<br />
This is why the size grip appears, even if you create it without the SBARS_SIZEGRIP flag. I think you can acomplish what you want by creating your own class derived from CStatusBar, and override PreCreateWindow().
Enis Arif
-----------
"I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world." (Albert Einstein)
|
|
|
|
|
I have the following problem: i use mapi library in visual c++. All works fine, except that I need to set the delivery receipt option to the message I send. There is a flag for read receipt, but not for the delivery receipt. Does anyone know a solution for this?
Thaks!
Enis Arif
-----------
"I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world." (Albert Einstein)
|
|
|
|
|
I have inserted a number of files from another project into my own.
I would like to link some of the menu items to functions in the Classes I have imported but VC6 seems to ignore all ON_COMMAND macros that I place into the imported files. Leaving the menu item greyed etc...
And class wizard ignores the classes i have imported in its list of available classes to link associate resources to?!?
Does anyone know how i can solve this?
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
normally deleting your clw file will do the trick.
STL is a religeon. Enquiries to Reverend Christian Graus
|
|
|
|
|
Thanks,
that did it.
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
I've added a X to the title bar using the dialog property sheet, where do I intercept this to do some processing before it exits?
Thanks!
|
|
|
|
|
Handle WM_CLOSE
STL is a religeon. Enquiries to Reverend Christian Graus
|
|
|
|
|
Thanks, I actually added the wm_close and didn't know that it would work with the X also. I thought there would be a wm_exit for that one.
Thanks for the info.
|
|
|
|
|
Does somebody knows where I can find the download for the EXCEL DEVELOPPERS KIT (any version will do)?
I've crawled the msdn site from top to bottom and 20 times back again, but nothing shows up.
Is it on the office installation cd? Do you have to buy it in a store?
tnx.
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
You will have to buy Office Developer's Kit from MS (I don't know it they have sepparate versions for Excel, Word..)
Enis Arif
-----------
"I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world." (Albert Einstein)
|
|
|
|
|
That's an MSPRESS book basically.
It was published in MSDN library until 1998, but MS decided to remove it to encourage people to use only VBA for Excel, and now Excel Xml,
And I swallow a small raisin.
|
|
|
|
|
I've just found the library and header files. It was included in some example zipfile
There're no docs but everything that's in the example is very clear.
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
Hi,
I got some troubles with VC6 and STL, I found on google's usenet archive that a SP is recommended. Which one should I apply, latest SP5? Any problems or new bugs that I should know?
Thanks
|
|
|
|
|
go ahead! can't believe you still running VC6 without SP,
And I swallow a small raisin.
|
|
|
|
|
okay, it's done.
Still the same problems and I need to run a workaround still. Is it known that STL implementation is a little clumpsy? Had no problems on Unix platform.
|
|
|
|