|
use:
AfxBeginThread(&MyThreadProc, (LPVOID)this, THREAD_PRIORITY_NORMAL);
inside MyThreadProc you can add the code:
CtestDlg *pTestDlg = (CtestDlg *)pParam;
... this will allow you to access any CtestDlg members.
|
|
|
|
|
Thanks Greg for you attention , but when i type :
AfxBeginThread(&MyThreadProc,(LPVOID)this,0);
i get an error :
c:\..\: error C2276: '&' : illegal operation on bound member function expression
Regards
m0n0
|
|
|
|
|
Your MyThreadProc need to be static.
And you only need to call like
AfxBeginThread(MyThreadProc,(LPVOID)this,0);
E.g
CWinThread* pThread = AfxBeginThread (ThreadFunc, lpVoid, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
ASSERT (NULL != pThread);
pThread->m_bAutoDelete = FALSE;
pThread->ResumeThread ();
By the way, make sure you protect the variables that you are accessing in the 'this ' in the thread by using those synchronization classes like CMutex, Interlock functions and etc.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Hello, just wondering if anyone has tried to backup NT permissions of a file or directory and store it in a flat file so the permissions could be restored at a later date if needed?
Is this even possible? If anyone has any experience in this can you give me a pointer where to start?
Thanks
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
To store:
CFileStatus stat;
CFile::GetStatus("file", stat);
CFile file("attr.out", CFile::modeWrite);
file.Write(&(stat.rStatus), sizeof(stat.rStatus));
file.Close(); To load:
CFileStatus stat;
CFile file("attr.out", CFile::modeRead);
file.Read(&(stat.rStatus), sizeof(stat.rStatus));
file.Close();
CFile::SetStatus("file", stat);
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi,
I utilize the IMPLEMENT_SERIAL(CFondationDoc, CDocument, VERSIONABLE_SCHEMA | 1) macro in my document class. I want to distinct between two versions of my files.
I have put "int nVersion = ar.GetObjectSchema();" in the loading portion of the Serialize method.
But nVersion returns always -1.
Do I have to store the schema number in the file ?
I have tried with "ar.SetObjectSchema(1);", but it is not stored in the file.
Thanks,
Claude
|
|
|
|
|
I usually just write out a DWORD at beginning of serialization stream as my 'version' number and read that back in when deserializing. It beats trying to figure out the screwy Schema system they have. You can read in older files with newer code, presumably the new system will always write out the newer file, though that is not stricly necessary either. Then just increment the DWORD value when you have a newer version of your data.
|
|
|
|
|
|
Hi All
This is a very basic question but in Visual C++.Net, how do I add a C++ Inline File like XLCALL32.LIB? I am trying to build an XLL from a DLL following the instructions in MSDN article Q178474. That article at point 6 says "Click Settings on the Project Menu. Click the Link tab and add XLCALL32.LIB to the Object/Library." The only way I can add it is to go to File and then "Add existing item" and then change the file type to *.* and select the inline file XLCALL32.LIB from the directory. This does not seem to work properly to link the file to the rest of the project. It may ne that something else is the cause and I am adding the inline file correctly.
Any thoughts would be much appreciated.
Regards
Jeremy
|
|
|
|
|
XLCALL32.lib is an object library, not an 'inline file'. An object library is a collection of object modules, compiled previously.
From the Project menu, select Properties. In the dialog, select Linker and then Input. Add XLCALL32.lib to the Additional dependencies field.
Software Zen: delete this;
|
|
|
|
|
I am building a dll that is supposed to be using Unicode but I am having some problems. I won't go into a lot of detail but here's a quick summary -
I am using grid software that requires a CString to be passed into it's SetText() function. I have a structure that has the follwing member:
struct MYSTRUCT{
TCHAR szDescription[512];
};
So, when I reach the point where I need to set my grid text, I use the following:
CString szTxt(struct.szDescription);
It fails indside the CString code in AllocBuffer() where it is actually doing the "new" call.
I don't expect anyone to know how to solve this but one thing that jumps out at me is that when I type sizeof(TCHAR) into my watch window, it returns a value of 1. I was expecting 2. I have "UNICODE" and "_UNICODE" defined in the project settings.
Any idea?
|
|
|
|
|
Dave_ wrote:
I don't expect anyone to know how to solve this but one thing that jumps out at me is that when I type sizeof(TCHAR) into my watch window, it returns a value of 1. I was expecting 2. I have "UNICODE" and "_UNICODE" defined in the project settings.
Try placing #define UNICODE and #define _UNICODE in the stdafx.h file before any other #include statements. It shouldn't matter if those directives are in the code or are in the project settings, but you never know...
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
Also, you might verify it is not the 'watch' window getting messed up, and do something like this in your (debug) build:
size_t szTemp = sizeof(TCHAR);
and quickwatch the value of szTemp. Is it 1 or 2?
Just to double-check against a wierd anomaly in the watch window's expression parsing or something.
|
|
|
|
|
Hi,
I am trying to populate the MsFlexGrid control by using the SetDataSource property of the MSFlexGrid COntrol.. but I am getting the "Type Mismatch" error.
can anyone tell me how to use MSFlexGrid and CRecordset together in an app.
Regards,
Sylvester12
|
|
|
|
|
Sylvester12 wrote:
...but I am getting the "Type Mismatch" error.
can anyone tell me how to use MSFlexGrid and CRecordset together in an app.
Not without seeing a relevant code snippet.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi,
Here is the piece of code thats cauing the error:
m_DataSource is an object of CRecordset which contains records from a database table.
m_Grid.SetDataSource(NULL);
m_Grid.SetDataSource( (LPDISPATCH) m_DataSource);
m_Grid.Refresh();
UpdateData(FALSE);
|
|
|
|
|
Ok, so which of these four statements causes the error? I've never used the MSFlexGrid object but that first statement seems unnecessary. The UpdateData() call is suspect.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
my question not about VC++, it's about turbo C++ (under dos)
i need to know where i can find the number of general 8086 software interrupt interfaces .
i want to use it with this function:
int86(0x??,??,??)
last but not lest i am sorry because i make this question in the forum of VC++ because you don't have TC++ forum.
|
|
|
|
|
Wow, it's been over 14 years since I last used Turbo C. It was a fun compiler and I learned gobs from it. My only two suggestions would be to Google for int86() and note the interrupts that are being called. I also had a book called "Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures" by Andrew Schulman. Good luck!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
IIRC (and it's been a long time) there were a number of reserved interrupts, and a few user interrupts available. Executable files were loaded at address 0x0100; addresses below that were allocated to interrupt handlers, 4 bytes at a time. Int0 got 0x000, INT1 had 0x0010, etc. It was common practice to replace the JMP (0x3c) operands to add new functions to DOS, or to implement user functions. One possible resource for you is Ralf Brown's Interrupt List[^].
"If it's Snowbird season, why can't we shoot them?" - Overheard in a bar in Bullhead City
|
|
|
|
|
Ive been working on a program using Microsoft Visual C++ 6.0 (with MFC app)... I am now queued at the Tree control part... Using the Control Palette it opens a control area and all tutorials i see are about AddString... I was wondering how i could get it to view the files in its folder, list all txt files in its folder, is it possible?
Just a Human Trying to Live in a Computers World.
|
|
|
|
|
|
Hello!
How can I make my window lose the focus? The window with that the user worked before should get the focus back (so not just any other random top-level window).
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Set the focus to another window (someWnd.SetFocus())
SkyWalker
|
|
|
|