|
Yes, it's possible, I think you can order it from MS for $5 or something. I know it can be done, I've got teh DVD.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
|
Also, you can download CD ISO images and burn your own.
See here[^].
I can't seem to find the link for ordering CDs - I know I saw it in the past.
Did they discontinue shipping CDs for Express editions? I don't know
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
That's great Mark, even better!!
Many thanks!!
|
|
|
|
|
Hello everyone,
I am developing a COM DLL (native unmanaged C++ using Visual Studio 2005). I have the following requirements and I am wondering what technology should I use to achieve my goal?
1. The COM DLL will be used by multiple different applications (processes), and for some COM objects, I want the different processes to share a single copy of data (CoClass object instance), and for some other COM objects, I want the different processes to share a separate copy of data (CoClass object instance).
2. The COM DLL I developed is working passively and providing service to other 3rd party applications when they invoked the DLL. I can not control the applications (can not access or change code). And the only thing I can control is the COM DLL itself. So, the technology I select to use should be transparent to the applications and only need code change in the COM DLL itself.
thanks in advance,
George
|
|
|
|
|
dear all
how to biuld a array which size is 500x500 in c++. thanks
zhiyuan
Li Zhiyuan
2/9/2007
|
|
|
|
|
int ar[500][500]; //doesn't work???
|
|
|
|
|
See
int a[5]={10,20,30,40,50};
int b[]={1,2,3,4,1000};
int[500][500];
char names[100][200][24][50][50];
int array[20];
|
|
|
|
|
I think you posted this question before and got replies.
void SomeFunc()
{
int My500x500Array[500][500];
...
}
void SomeFunc()
{
int (*My500x500Array)[500] = new int[500][500];
...
delete[] My500x500Array;
} Make sure you have enough stack space for the stack-based variable -
it's 1000000 bytes and the default stack size is generally 1MB.
Mark
Last modified: 11hrs 5mins after originally posted --
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: Make sure you have enough stack space for the stack-based variable -
it's 1000000 bytes and the default stack size is generally 1MB.
Only to understand better the problem for myself... I use often big arrays
I found often this "stack-based variable" indication but never studied it deeper:
Is this static variable...
int A[10000];
...a stack-based variable ? So it needs to be checked?
And... is this array...
p = new int[10000];
a not stack-based variable ? ... so it doesn't need a check?
thanks
Russell
|
|
|
|
|
native C++ is platform dependent. If the variable is greater then stack size it even will not compile. But you need to check
p = new int[10000];
because you can be out of memory, and you dont need to check
int A[10000];
|
|
|
|
|
|
Ehi... I make a little research on internet....and I found the opposite of what you sad:
Static variables (as int i[100];) goes on the stack.
Dynamic variables (as int*p=new int[100] ) is allocated in the heap (of course: p is in the stack and *p is in the heap)
Is the heap and the stack the same thing?
Russell
|
|
|
|
|
no, stack can be overflowed too but, this is very rarely. You should never allocate big data in stack. The stack size on my mashine is 1 mB, and I was not right when sad that code will not compile when variable is greater then stack size. It will but it will throw ecxeption. You should allocate big data in heap because the only limit of memory is 4 Gb, in Windows memory can be projected on hard disk. The chance to end out of memory, allocating in the heap is very small. Allocation in heap is longer because this is a process of looking for free space in memory while allocating in stack is very fast. So the choice is for you.
|
|
|
|
|
progDes wrote: The stack size on my mashine is 1 mB
On Windows, every thread running on your machine can have a different stack size, and it can be larger than
1 MB Executables also have a default stack size for new threads created by the process.
Thread Stack Size[^]
Cheers!
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yes,
int a[100]; going in stack
int *p = new int[100]; going in heap
but you dont have to check stack overflow because stack overflow is already very critical situation, the program can't work, except the exception system when you can catch this situation (i dont exactly know, is there is ability to catch stack overflow). But if you allocating much data in heap you should check if "new" return NULL pointer. In this case you can stop the program or try to free some memory in heap and try to allocate memory again.
|
|
|
|
|
Now it is perfectly clear.
Thank you
Russell
|
|
|
|
|
I should have been more clear with the term "stack variable"...
I should have separated static and automatic variables:
int a[10000];
void SomeFunc()
{
...
}
void SomeFunc()
{
static int a[10000];
...
}
void SomeFunc()
{
int a[10000];
...
}
Objects created with "new" are generally on the runtime heap (unless you're
using a custom new operator and allocating memory some other way).
The stack is created at runtime when creating threads. The default size of the stack
for the primary thread of an executable is set by the linker, so I can't imagine
the compiler can tell you you've created too big of a stack variable. At runtime, however,
there will be a fault if you use too much stack space (stack overflow).
The stack is good for small, temporary objects. Allocating room on the stack is much faster
than allocating memory on the heap. Large objects should be created on the heap
regardless of their longevity. How big "small" and "large" objects are varies, depending
on stack size, nested function call depth, how many other objects are on the stack, etc.
Usually it's recommended that objects larger than a few KB should be dynamically allocated
on the heap, but again, that's arbitrary, and depends on the design of the application and the
system it's running on.
Hopefully a little more info,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you ... It's mere then clear now.
This now remember me a question that is posted here days ago:
Why is preferred the way 2 to the (simpler) way 1?
way 1:
CDialog dlg;
way 2
CDialog *p;
p=new CDialog ;
This is giving to him another valid reason of this choose:
to let the stack be more free!
sizeof(CDialog) vs sizeof(CDialog*)
Russell
|
|
|
|
|
Hello all,
I have an iPhone and made a stupid mistake.
1) I got an iPhone and then did a 'sync' which put all my songs etc in the iTunes Music Library onto my iPhone
2) Then, thinking "Oh well, the songs are all on my iPhone now...to save some disk space I can erase my iTunes Music Library folders and ALL the files within!"
Duhhhh....
3) Having done that and regretting it, now iTunes won't let me put my songs back on my computer because it says, "The music library on this iPhone came from another computer."
Since I deleted ALL iTunes music files from my computer -- including the .xml etc control files, I can see where it might say this. However, it happens to not be the case.
Just to be clear...I do know I can copy iTunes Music Store-purchased stuff back to my computer, and that's great.
However, being the C++ and Windows programmer that I am, I am looking for a code hack to use the Windows API etc. to open the iPhone from my own code and copy files off of it. It's not immediately obvious if any of the standard Drive APIs will work, since it looks to the computer to be somewhat like a USB Mass Storage Device, although only somewhat....it has no drive letter when I plug the sync cable in.
However the "Scanner and Camera Wizard" from Windows always pops up when I plug the sync cable in and the iPhone shows up in My Computer with no drive letter, just as if it was a Digital Camera only...so I am wondering if there is anyway to crack the iPhone and get the songs off of it...
I believe there is a solution somewhere to this problem, since Tansee iPhone Transfer Software has obviously implemented some sort of working solution. However, it's not obvious that the aforementioned package is written in C++ and that's my favorite language to use...
Any suggestions would be greatly appreciated.
Sincerely Yours,
Brian Hart
Department of Physics and Astronomy
University of California, Irvine
|
|
|
|
|
Can anybody point me to any documentation / sample code on this???
My MSDN library does not know what CTabStrip is too!
Thanks a million
Vaclav
|
|
|
|
|
The MFC and CRT source code have never heard of it either.
What the heck is a CTabStrip?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It is the control containing just the tabs.
(Microsoft Forms 2.0 TabStrip.lnk in Registsered Active X controls in gallery _ VC6.0) )
I am hacking " visual framework "
( http://www.codeproject.com/dialog/visualfx.asp)
and I need to add a spinner control to move the tabs into focus when there are too many tabs in the tab client area.
I am having great time hacking this code and need to speed thigs up a little.
What I was going to do is make invisible tab control to gain acces to the spinner. But it is getting to complicated.
Vaclav
|
|
|
|
|
OK. With your help I managed to finish my project. One last thing to do.
How to build an exe file from my mfc project so it can run on any windows base computer?
|
|
|
|
|