|
Theres a program that I have (i didn't make it) and there is a 'refresh' button. When you click the button the rogram rewrites a file, then displays the info from that file. What I want to do is wait until that file is opened and edited, then add some stuff of my own to it before it's closed by the program. Can that be done?
There's always one more bug.
|
|
|
|
|
I want to make a 100% OOP app and if that's gonna be true the entry point (main or WinMain) must belong to a class. But how!? I know it's possible but can't find out how!!!
Help me please!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
It's called Java.
Jeremy Falcon
Imputek
<nobr>"C# is the answer to a question nobody asked." - Chris Losinger
|
|
|
|
|
no, i don't think that's possible with C/C++, though maybe it is with .Net.
-c
Argue for your limitations, and sure enough, they're yours.
|
|
|
|
|
You can do that, but you will have to create a static member function for your class. Then set the entry point to your app to be that static member function.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I tried making main() static like:
public:
static int main()
{
return 0;
}
...
but it said an error that I can't remember!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
You do realize that not every function should belong to a class? main is a good example of that
Todd Smith
|
|
|
|
|
Yes, but I have seen a messgage here on CP loooong long time ago and someone answered it and said it was possible!
.....
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
What is the series of Win32 API calls to determine how much memory a process is holding on to? For example, this set of API calls should give a bigger number each time I call malloc(), etc.
Thanks for your help
|
|
|
|
|
2GB per process. (4GB addressable, 2GB for kernel, 2GB for user).
Add /3GB in boot.ini to get 3GB for user, 1GB for kernel.
And I swallow a small raisin.
|
|
|
|
|
GetProcessHeaps + HeapWalk can be of use, but maybe a simple GetProcessWorkingSetSize wold do in this case.
|
|
|
|
|
No, it doesn't work, at least according to the way I've tried to use it. The following code always returns the same values (workingset size never changes):
#include <windows.h>
void main()
{
long minn, maxx;
long nbytes=1;
while (1) {
GetProcessWorkingSetSize(GetCurrentProcess(), &minn, &maxx);
printf("%ld %ld\n", minn, maxx);
malloc(nbytes);
nbytes *= 2;
Sleep(1000);
}
}
#include <windows.h>
C:\temp>workingset
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
204800 1413120
|
|
|
|
|
I was hoping someone could help me with a little problem I am having. I am new to COM and after a lot of research and helpful articles, I was finally able to write my first COM dll. One of the most suggested articles is the one about creating an outlook dll for office 2000. So I structed my dll around this. I used the #import for the type libs and was actually able to create my own button. I am not doing this for outlook but instead of word and excel. What I was wondering is if there is a way to know, programatically, what version of office the machine has? The #import statements are located in the stdafx.h. But is there a way to check if Office XP, then use the #import statements for Office XP and if not, use the ones for Office 2000 libs? I have looked through a lot of code and I found a complete of alot ideas but with the way the dll is put together, since I am not using the msword.h and such, they don't work for me. Can anyone give me any suggestions!!!!!!
|
|
|
|
|
You can import both of the interfaces into your DLL and then select which one to use at run-time.
Todd Smith
|
|
|
|
|
How would I do that? Since I would have to put all the #import statements in stdafx.h, it wouldn't compile unless I had both installed on my machine. It would look for MSO9.dll and MSO.dll. I am a little lost on how to do this!
|
|
|
|
|
This is what I am trying to do:
We have a very large file (over 2Gb) that has a special character at the very end that we wish to remove.
The approach I have taken is to seek the end of the file and then reading the very last line. Once I have read the last line, I manipulate this with a CString object and remove the unwanted character(s). Once I have done that, I reset the length of the file and the write out a new line which is my modified CString object.
My problem is that since the file is very large, my CFile::SetLength(...) function is bombing. I get a Bad File Seek exception everytime. This is because the size of the file, according to the CFileStatus object's m_size variable is a negative number. When I supply the modified size to SetLenth, it casts it to a LONG and the calls the Seek function. When the Seek gets called, the number becomes negative and I get an exception.
Is there a way around this? A better way of doing this perhaps?
thanks
ashish
|
|
|
|
|
did you try without MFC but in C or with STL ?
Stephane
www.exotk.org
|
|
|
|
|
Here's a complete program that should work for you (and it should be really fast!) This is pure Win32 API, no MFC or ANSI C++. As usual, you should test the heck out of it before attempting to roll with it.
HTH-
Ty
#include <Windows.h>
int main(int argc, char* argv[])
{
HANDLE hFile = NULL;
DWORD dwFileSize = 0;
DWORD dwError = 0;
__try
{
hFile = ::CreateFile(
argv[1],
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_RANDOM_ACCESS,
NULL);
if( hFile == INVALID_HANDLE_VALUE )
{
return 1;
}
dwFileSize = ::GetFileSize( hFile, NULL );
if( ::SetFilePointer( hFile, dwFileSize - 1, NULL, FILE_BEGIN ) != -1 )
{
if( !::SetEndOfFile( hFile ) )
{
dwError = ::GetLastError();
return dwError;
}
}
else
{
dwError = ::GetLastError();
return dwError;
}
}
_finally
{
CloseHandle( hFile );
}
return 0;
}
</code>
|
|
|
|
|
TyMatthews wrote:
This is pure Win32 API, no MFC
So why do I read "CFile" in the subject line???
Instead of telling you possible "interesting" interactions with the Win16-derived "things" and FAT, try to just search to (1, FILE_END) before setting EOF.
|
|
|
|
|
Mike Nordell wrote:
So why do I read "CFile" in the subject line???
Whoa, easy there pal... if you actually read his post, you'd see he also asked:
Is there a way around this? A better way of doing this perhaps?
All I did was offer up an alternative... a quicker and easier solution to his problem. My intention was purely to suggest looking at the Win32 API a little. I started out writing 100% in MFC. Then when the MFC classes could no longer provide the functionality I needed, I had to go elsewhere. He asked for alternatives, and I gave one. So chill out.
If someone really wants to know what's happening under the hood of CFile, just take a look at the MFC source code for CFile::Open() and CFile::Seek(). It's in VC98\MFC\SRC\FILECORE.CPP. Amazingly enough you'll find the same Win32 API code that I referenced. I'm sure if CFile had a function for SetEndOfFile, it'd be calling the exact same Win32 API code. MS didn't bother to do that. If you're worried about exception handling, just take cues from any of those CFile functions and run with it.
I don't have a Win16/FAT box to test your example. I gave up on both in 1996.
Ty
|
|
|
|
|
TyMatthews wrote:
Mike Nordell wrote:
So why do I read "CFile" in the subject line???
Whoa, easy there pal...
Ouch. I completely misread the thread and got the impression it was you that wanted a solution to a problem. Sorry Ty, my mistake. I'll try to not let it happen again.
Mumbling to myself: How the h*ll could I misread a thread like that...
|
|
|
|
|
Ahh, no worries mate
Ty
|
|
|
|
|
does anyone know how to print file.html?
I used ShellExecute(..) to print. It seems printed coz I got no error or warning.. but when you open your printer ( I paused the printer before), you won't see any file in the printer spool..
it is samething like when you right click print on file.html in window explore. nothing get printed...
is there anyway to print file.html programmatically??
thanks.
|
|
|
|
|
|