|
Cool. I haven't yet figured out what all those files do - the NCB is a 'no compile browser' file - apparently used by class wiz and component gallery.
The OPT (options) file holds, according to the docs, all your workspace options - what build's on deck, where your toolbars are, etc. I find it also holds a lot of text from open files, (remove it and all the windows you left open last session are gone). Not sure if it has something to do with undo/redo in the editor, but just updating these screens as you type might be a chore. When I find the keyboard really sluggish after a long session, I take a look and see if the opt file is flirting with 70k. If so, it helps to delete it.
Just theories...
|
|
|
|
|
These files can easily become corrupted, and when they do, VC acts in unpredictable ways. Some of those files contain machine specific information, and if the environment isn't exactly the same, it gets confused.
the .ncb is the no-compile browser, used for the ClassView primarily, but also for IntelliSense.
the .opt file stores local options, such as which windows you have have open, breakpoints, etc.. Not quite so intuitively, it also stores folder hierchy if you create new folders in your FileView (this should really be stored in the project IMO, but sadly that's not the way the IDE developers saw it).
|
|
|
|
|
i was hoping you'd say Win95 - these give VC some serious problems when it comes to dependency checking (i don't know why). it takes 10x-20x longer on 95 to check dependencies (initial project load and first build) than on NT.
-c
------------------------------
Smaller Animals Software, Inc.
http://www.smalleranimals.com
|
|
|
|
|
I work on three sites and bounce between Win95/98 and Win2000. I transfer only sources and local libraries. I duplicate the project files manually and keep them in sync by hand. When required, I load up the sources and rebuild all. A batch file helps for large projects.
This is a pain in the neck but I found that taking projects across OS's makes them flaky with mysterious crashes, corruptions and other idiot-syncracies. I think you just found one of these problems.
|
|
|
|
|
at least i dont gots to have a cup of tea everytime i load up the project on my laptop now ... still don't get what could be causing it but if it leaves me alone i'll leave it alone
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Lauren,
I have seen exactly the same symptions before and in my case the problem
was that VC++ on the new machine (your LapTop) was spending 20 minutes
looking for the project in Visual Source Safe when the machine was not
even on the network.
The solution I used was to open the .dsw as a text file (using VC++) and
deleting all the VSS lines below the line :
"# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!"
cool hey
There might be timeout values for this stuff in the registry but I can not
look as my current clients do not use VSS.
Let us know how it goes,
Julien.
|
|
|
|
|
Is there any TAPI function (or similar) to detect "fast busy" status of a phone line?
THANKS
|
|
|
|
|
> Is there any TAPI function (or similar) to detect "fast busy" status of a phone line?
TAPI is not my strong point, but try searching the MSDN collections for "Reorder" or "LINEBUSYMODE_TRUNK" near "LINE_CALLSTATE". The "lineGetCallStatus" function should be able to help you.
Peace!
-=- James.
|
|
|
|
|
Hi everybody,
How do i fire events in a VB activex dll that can be caught by MFC client? VB cannot map events without a typelib. So first a connectable component is required by client to build sink to events. Does this component stay housed inside the client or as a separate dll/exe?
Thnaks,
|
|
|
|
|
you can use the dll/exe as typelib.
#import "MyActivex.dll"
Good luck,
Dror
|
|
|
|
|
Hi,
I am trying to make a PC activities log file, using Mike Ryan's Enummodules.cpp.
I want to know how to get process' name executed in CMD window.
For example, you open a dos window with cmd.exe, then you execute other program like edit.exe.
How to get "edit.exe" in this case.
Thanks for helps.
|
|
|
|
|
i havent checked mike ryan's article in depth but you will want to be using the Process Status API (PSAPI.DLL) and the Virtual DOS Machine Debug API (VDMDBG.DLL) to get at the info you want
to get the 16-bit tasks inside the VDM's use VDMEnumTaskWOWEx():
if (!stricmp(szProcessName,"ntvdm.exe"))
{
VDMEnumTaskWOWEx(processID,EnumWin16Processes,0);
}
check the VDMDBG.H file for the info on this call
if the VDM is running an msdos app rather than hosting a WOW box it wont call your callback
the callback function EnumWin16Processes:
BOOL WINAPI EnumWin16Processes (DWORD dwThreadID,WORD hMod16, WORD hTask16, PSZ pszModName,PSZ pszFileName, LPARAM lpUserDefined)
{
wada wada wada ...
}
hope this helps
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Hi Lauren,
Many thanks for your advices.
I'll try it soon.
Best regards.
|
|
|
|
|
Ok first I'm really new to windows programing, so I'm working on a really simple automation program for some of the webpages I visit, one of the things I need to be able to do is autofill and submit an HTML form on a page, I've been looking at some MSHTML methods, and it seems to be there I just don't see how exactly I can retrieve the form and modify its elements, if someone could help me out it would be really appreciated. and secondly if anyone has some good web references for MSHTML or C++ in general they wouold be greatly apprciated as well ,as I've found them very hard to come by esp. geared for begginers, MSDN reads like greek to me at the moment.
Thanks, ßlack Widow
|
|
|
|
|
Help!! How can I detect in Visual C++ the state of the phone line?
The phone line is used by another application.
I'm posting from Italy.
When something go wrong (for instance: an error dialing) I don't find a "busy" line (I could detect this), but a kind of "answer" telling me "this number is temporarily unavailable. Try later.", not a modem answer (I dialed the number of an ISP). Then the line begins a kind of "fast busy"; after this there's silence. Can I detect this "fast busy" at least?
Thank you very much.
|
|
|
|
|
I am working on telephone signaling using modems and tones. From what you say, you have a few big problems. I don't know how experienced you are so I assume you wan't to know as much as possible.
Firstly, if another application has the modem you cannot normally see what is comming in unless that other application co-operates. The serial port cannot be shared.
Secondly, modem technology is, how shall I say, pazzesco nel capo. It is very difficult to get it to do the right thing unless you wan't to do very ordinary simple things. Each modem is set up for a particular country (or countries) at the factory and some countries do not allow you to change important settings. If your modem does not detect the "fast busy" it means that this is not a recognised tone-sequence in your country.
There is a solution but it is hard. I am going to solve my own problems this way. You have to write a customised serial port driver and use the voice modem commands (I assume you are using a voice enabled chipset) to detect the "fast busy". The driver is difficult enough to write even if you know how. The voice commands and timing have a few tricks as well. This solution is probably not what you are looking for but I have been unable to find any other way of detecting non-standard signals outside of applications without external hardware.
I believe that there might be something in TAPI3 which could help you but I don't use TAPI so I don't know. Buona fortuna!
|
|
|
|
|
Help!! How can I detect in Visual C++ the state of the phone line?
The phone line is used by another application.
I'm posting from Italy.
When something go wrong (for instance: an error dialing) I don't find a "busy" line (I could detect this), but a kind of "answer" telling me "this number is temporarily unavailable. Try later.", not a modem answer (I dialed the number of an ISP). Then the line begins a kind of "fast busy"; after this there's silence. Can I detect this "fast busy" at least?
Thank you very much.
|
|
|
|
|
maybe use the tapi functions
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Since you say you can detect a "busy", I would guess that you are already using TAPI.
Look into "LINEBUSYMODE_TRUNK" and "lineGetCallStatus" in the TAPI help.
Peace!
-=- James.
|
|
|
|
|
I need not to show the splash screen of an app that I haven't done, how could I do it?
Thank you in advance.
Joan Murt
|
|
|
|
|
Not much you can do unless the person who wrote the app chose to impliment an interface to do so. There is a multitude of ways to do a splash screen, (I have never used the one included with VC), so there is no way of knowing how it is being done. The best you could hope for ( and I'm not suggesting I'd bother ) is to enumerate all windows after you start the program, and hope the splash screen has "slpash" or something on the hidden title so you can call DestroyWindow on it. Even then, you'd see it for a moment.
|
|
|
|
|
unless you want to go the hex way and jump out the slpash screen
|
|
|
|
|
most splash screens run in a separate thread so you'd have to hex jump out the instructions to terminate the thread too ... very icky indeed
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Environment:
Win2K.
VC++6
No service packs.
We can trap the message that is produced by pressing the 3 keys but we aren't able to disable it before the system handles it.
I've thought of hide the window that appears whe I get the message, but I don't understand what happens with my code, it makes all the system crash at the start of my program.
Could you take a look at it and give me an advice?
Thank you in advance.
Joan Murt.
IT developer.
// at the header file of my class.
static LRESULT CALLBACK HookDeMostrarFinestres(int nCode, WPARAM wParam, LPARAM lParam);
//-----------------------------------
// at the implementation file of my class.
// Inside the constructor
this->m_hHookMostrarFinestres = SetWindowsHookEx(WH_CALLWNDPROCRET,(HOOKPROC)this->HookDeMostrarFinestres,AfxGetApp()->m_hInstance,NULL);
// HandlerLRESULT CALLBACK CCtrlTeclesEspecials::HookDeMostrarFinestres(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
LPCWPRETSTRUCT pRetStructInfo = NULL;
pRetStructInfo = (LPCWPRETSTRUCT)lParam;
if (pRetStructInfo->message != WM_CLOSE)
{
CWnd pWnd;
CString csCaption = "";
pWnd.Attach(pRetStructInfo->hwnd);
pWnd.GetWindowText(csCaption);
if (csCaption == "Seguridad de Windows")
{
pWnd.PostMessage(WM_CLOSE);
}
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
|
|
|
|
|
It looks like maybe WH_CALLWNDPROCRET is a factor - if you use this, you get the message after it is sent to the destination window. Maybe try WH_CALLWNDPROC to get it before it gets processed.
|
|
|
|