|
Here is the source for the app (bear in mind that this is just a quicky example app and not necessarily coded well ) [^]
onwards and upwards...
|
|
|
|
|
I am porting an old project to be able to use .Net. There is a struct type that needs to be used by an old library written in C and a new class library written with .Net. When I try to have a pointer to this struct as a member of a managed class I get the following error:
error C3160: 'piData' : cannot declare interior __gc pointer or reference as a member of 'PatInfo'
Here is the struct definition in a header file used in both projects:
typedef struct _reportFull{
ReportHeader * header;
ReportStruct * st;
ReportAngio * angio;
ReportNonSaved * ns;
} ReportFull;
Here is part of the PatInfo class definition from another header file:
__gc class PatInfo {
public:
PatInfo();
~PatInfo();
ReportFull __nogc *piData;
ReportFull __nogc *temp_data;
ReportFull __nogc *defaults_reference;
UserControl* dlg;
};
The error occurs when I try to make a derived class from PatInfo. I suspect that it would occur any time I use PatInfo.
Anyone know of a way to use pointers to unmanaged types within a managed class?
|
|
|
|
|
I keep getting a stack overflow error when running a multiple threaded app. I thought the OS allocated 1 meg and grew the stack when one uses createthread with zero for the stack size param. How do you use the param? I set the param to a more than sufficient value, but it changed nothing. Do I need set anything else? I noticed setting the stack commit/reserve in the proj setting fixed the issue. Why did this work. Any suggestions.
|
|
|
|
|
If you are writing a Win32 application and you use Viusual C++ and you make calls to some standard C library functions, then you should start your thread with beginthreadex instead of CreateThread. It initializes thread local storage for certain standard library functions. If you called one of these from your thread, you might have blown the stack. Otherwise, check for excessive recursion in your code. Maybe you just luckily made the stack large enough not to blow in this particular instance. I have used file and directory search code from threads, as a recursivee example, and I have yet to ever have to adjust any stack size thread related parameters away from their defaults.
|
|
|
|
|
I have a tree control in which I have a couple of top level items ( hParent == TVI_ROOT ).
I need to be able to select items from the different subtrees, so I'm using CMultiTree ( from codeguru ).
The question is :
Is there a way to search/select/manipulate all subtrees at the same time, with a single "root" item ?
I can search each subtree with a simple recursive method, but I need to search each sub tree individually; not a big deal, but if I need to add a new subtree, I will need to add it to each operation that will scan the different trees ( add, remove, select, modify ... )
I wanted to put each sub-trees under a single "root" item to do this, but the boss doesn't like it.
Maybe I got things wrong ... any suggestions ?
Thanks.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
It may be my imagination, but you've answered your own question. Each top level item is a child of
the TVI_ROOT "item".
So if you have a HTREEITEM SearchChildren (HTREEITEM hSearchRoot) funtion, just feed it TVI_ROOT
as the search root.
Iain.
ps. SearchChildren was an example name...
|
|
|
|
|
Hi guys
There is an easy way to manage the following?.
I have 2 list controls one above the other and what I want is that when I move the horizontal scrollbar of the above listcontrol the down scrollbar move like it was linked. Is this possible easily?
Best Regards
Doc
|
|
|
|
|
Yes, but you'll have to write all of the scroll sync code.
onwards and upwards...
|
|
|
|
|
Where can I start to take a look about scroll sync?
Thanks
Doc
|
|
|
|
|
For starters, you can look at the MFC file ViewScrl.cpp to see how to handle scroll messages. Then, you would need to scroll the second control (via ScrollWindow or equivalent) when the first is scrolled.
onwards and upwards...
|
|
|
|
|
Incredible but true!!!!
http://www.codeproject.com/listctrl/synchscroll.asp#xx128601xx
Nice job.
Thanks anyway.
Doc
|
|
|
|
|
I wrote my code in VB(It is hell but i had not choice), but it does not work.
I keeps returning error 234 (ERROR_MORE_DATA). But i have a 12 Kb buffer, which means the problems is something else.
Please Help.
I am already 3 hours in this &^&%&%.
|
|
|
|
|
HAHAHA_NEXT wrote:
I keeps returning error 234 (ERROR_MORE_DATA). But i have a 12 Kb buffer, which means the problems is something else.
You failed to indicate what API you are using that is producing this "error." In any case, it's obvious that a 12KB buffer is insufficient. Try a larger number.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
ERROR_MORE_DATA is not really an error. It simply means that there are more values to enumerate. RegEnumValue does not enumerate *all* values, you give it a counter, and it enumerates one at a time. For instance (yes, this is C++ code, but you can figure out the algorithm):
DWORD error;
DWORD index = 0;
TCHAR nameBuff[1024];
TCHAR valueBuff[1024];
DWORD nameBuffSize, valueBuffSize;
DWORD type;
do
{
nameBuffSize = valueBuffSize = 1024;
error = ::RegEnumValue(hSectionKey, index, nameBuff, nameBuffSize,
0, &type,(BYTE *)valueBuff, &valueBuffSize);
if(error == ERROR_SUCCESS || error == ERROR_MORE_DATA)
{
}
index++;
} while(error == ERROR_SUCCESS || ERROR == ERROR_MORE_DATA);
Sometimes I feel like I'm a USB printer in a parallel universe.
|
|
|
|
|
I think i found it. Stupid vb does not understand NULLS.
|
|
|
|
|
I think i found it. Stupid vb does not understand NULLS.
error = ::RegEnumValue(hSectionKey, index, nameBuff, nameBuffSize, 0, NULL,NULL,NULL);
Does not work with VB (&^%$^^&^%&) .
Thank you all. I changed my code and it works now.
|
|
|
|
|
Is there a way to conver a C++ program into MFC? IF so how do I go about doing it!!
|
|
|
|
|
Not automatically.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
How, can it be done? You said not automatically, so it is possible.
|
|
|
|
|
Well, the first thing to clear up is to remove the thinking that C++ and MFC are mutually exclusive things. One is merely a subset of the other. Converting a VB project to a C++ projects makes more sense than converting a C++ project to an MFC project. MFC is a tool that is used within, not in place of, a C++ project.
That said, what sort of C++ project are you wanting to convert? If it is GUI based, it is probably a good candidate to use MFC. If not, then an STL project might be more fitting.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
David, Its an STL project that I am running from the command line. How do i go about converting that into MFC?
|
|
|
|
|
Use AppWizard to create an MFC project. Decide if it will be SDI, MDI, or Dialog based, and then add the necessary files from the STL project.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Hello,
I'm looking for a way to let the PC Speaker beep, but it must be asynchronous. The function I could find - Beep - is syncronus. :/
Thanks for the help,
Michael
|
|
|
|
|
Asynchronous standard beep using computer speaker:
MessageBeep((UINT)-1);
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)
|
|
|
|
|
Thanks Dominik, though the MessageBeep isen't what I'm looking for, because it does play the default windows .wav sound and I actually need the PC-Speaker playing the sound.
-Michael
|
|
|
|