|
(Visual C++6.0 on OS w2k)
I have the following problem using standard microsoft ActiveX MSComm32 or others:
when I create this object and I run my application in
debug mode there is always a COleException raised:
Warning:_ constructing COleException,
scode=DIPS_E_MEMBERNOTFOUND ($80020003).
I create the object as below:
CString csLicKey = "Copyright (c) 1994 ";
BSTR bstrLicKey = csLicKey.AllocSysString();
if(!m_CommCtrl.Create("Communications Control",
WS_CHILD, CRect(0,0,40,40), this, IDC_COMMCTRL, NULL,
FALSE, bstrLicKey))
I couldn't trap this exception. And I couldn't discover
why it was raised.
Someone knows something about this issue?
|
|
|
|
|
Assuming you mean DISP_E_MEMBERNOTFOUND and not DIPS_E_MEMBERNOTFOUND.
MSDN states the following,
Debugging Output You Can Safely Ignore
When you're debugging a control, you may get a series of messages in Visual C++'s debugging window. Although it's not documented anywhere, some of these messages can be safely ignored. For instance, when I debug the StopLite control in the test container using Visual C++ version 4.2, I get the following:
Loaded symbols for 'C:\WINNT35\system32\MFC42.DLL'
LDR: WARNING ! MAJOR PERFORMANCE LOSS in TSTCON32.EXE
LDR: Dll MFC42D.DLL base 5f400000 relocated due to collision with
C:\WINNT35\System32\MFC42.DLL
Loaded symbols for 'C:\WINNT35\system32\MFC42D.DLL'
Loaded symbols for 'C:\WINNT35\system32\MSVCRTD.DLL'
Loaded symbols for 'C:\WINNT35\system32\MFCO42D.DLL'
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
First-chance exception in TSTCON32.EXE (MFCO42D.DLL): 0xE06D7363: Microsoft C++ Exception.
The first line is just notification that the debugging symbols for the release version MFC DLL were loaded when the test container, which uses the release version of the MFC DLL, was loaded.
The second and third lines (which begin with "LDR:") warn that the debugging version of the MFC DLL (used by the StopLite control) had to be relocated in my address space because it conflicted with the release version of the same DLL (which is being used by the test container). Although this means that it took a little longer to load the MFC DLL, it isn't a big deal because it only happens when you're debugging in the test container. You can ignore these messages. (Since Visual Basic apps don't use the MFC DLL at all, you won't get this message if you use a Visual Basic app as your test container.)
The next three lines are notifications that debugging symbols have been loaded.
The last two lines are notification that an exception has been thrown because the test container didn't provide a Color property to be read. This is okay, because we've provided a default value for the property. You won't get this error if you use a container that provides the property, such as a Visual Basic application.
In Visual C++ version 4.1, the only line I got was a warning about the exception for properties that couldn't be loaded from the container.
First-chance exception in TSTCON32.EXE (MFC40.DLL): 0xE06D7363: Microsoft C++ Exception.
Depending on how your container handles threads, you may also get occasional messages about threads exiting. You don't need to worry about these, either.
Michael
|
|
|
|
|
|
how do you print ? with the doc / view architecture or somehow different ?
OnPrepareDC (CDC* pDC, CPrintInfo* pInfo)
{
..
DEVMODE* pDevMOde = pInfo->m_pPD->GetDevMode();
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
pDC->ResetDC (pDevMode);
}
This would be the approach for the doc / view arch. if you use another way, post the code...
hope this helps..
bernhard
"There are three roads to ruin: women, gambling and technicians. The most pleasant is with women, the quickest is with gambling, but the surest is with technicians." Georges Pompidou
|
|
|
|
|
I'm an experimented developper (I believe I am) but I'm a bit lost.
I want to create a Internet Explorer PlugIn but when I open the new project dialog, I don't know what to choose. It's very embarrasing .
FYI, I want to put some buttons and a listbox.
How can I force the user to install it when he opens the page?
Can I create a Dialog application with automation server? Does that work?
|
|
|
|
|
|
Hi,
I'm wondering if it is possible to 'push' a thread to execute more often when another thread is waiting for some data from the first one?
The concret case is the following: My application created a secondary thread for displaying data. The main thread modifies that data and to avoid displaying wrong data I use flags.
When the secondary thread is busy, the first one waits until the security flag is reset. Depending on the compiler options the results are different: for 'standard optimization' there is no problem, but for 'speed optimized' the main thread waits forever because somehow the secondary thread doesn't continue... ??
Can someone help ??
Thanks
|
|
|
|
|
You can increase the thread priority SetThreadPriority in MSDN
|
|
|
|
|
Set the priority to THREAD_PRIORITY_HIGHEST or even THREAD_PRIORITY_TIME_CRITICAL, do your stuff and then put it back to THREAD_PRIORITY_NORMAL
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
Have you declared the flag variable as volatile ? If you didn't, the compiler doesn't know it may be changed in another thread, and can optimize away checks for its value.
|
|
|
|
|
When you say a "flag" do you mean a bool variable? If so, then that is the wrong way to synchronize threads. Use a critical section instead. See InitializeCriticalSection() and related APIs.
--Mike--
http://home.inreach.com/mdunn/
Help! Help! I'm being repressed!!
your with and
Sonork - 100.10414 AcidHelm
|
|
|
|
|
Thanks for all your replies.
It's right, I forgot to specify the flag as 'volatile'. Without this even when increasing the other thread's priority it wouldn't have worked.
But I didn't use a critical section... I'll try to implement it in future
cheers
Marc
|
|
|
|
|
About Server Application
.........................
The server is a full server with automation support.
Server Applcation name is "TestServer"
About Container Application
Container Application name is "CONTAIN"
I am embedding server application in container by using following code
CCONTAINCntrItem* pCntrItem;
CCONTAINDoc* pDoc = GetDocument();
pCntrItem= new CCONTAINCntrItem(pDoc);
CLSID clsid;
CLSIDFromProgID(L"TestServer.document",&clsid);
pCntrItem->CreateNewItem(clsid);
pCntrItem->DoVerb(OLEIVERB_SHOW, this);
It works well.
Now What is the problem?
----------------
i want to provide some information to the "TestServer" before embedding. so how i provide this information from "CONTAIN" to "TestServer".
One way is that "TestServer" should have a method like SendData(CString strData), but how i invoke this method in "CONTAIN".
|
|
|
|
|
How can I generate reports in vc++ like we can in vb.Can you tell me any other way or way of using crystal repors in my application.Please give me an example.
Thanks
imran
|
|
|
|
|
I Write a Visual C++ Program and I Want Run This Program in Other Computer That Haven't Visual C++(Don't Install Visual C++)a I Have a Problem.How to Run This Program..
Or
I Want Visual C++ 6 Runtime Library
Or
Another Way to Help Me.
thanks for your help
|
|
|
|
|
Copy msvcrt.dll (or msvcrtd.dll for a debug build) to \winnt\system32 (or similar).
|
|
|
|
|
Select the static version of the runtime library: Project->Settings->C/C++ sheet->Category: Code Generation->Use run-time library: Multithreaded or Debug Multithreaded, depending on the configuration you're changing the settings for.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Use Dependency Walker to find out the required DLLs
or link MFC statically
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
I Write a Visual C++ Program and I Want Run This Program in Other Computer That Haven't Visual C++(Don't Install Visual C++)a I Have a Problem.How to Run This Program..
Or
I Want Visual C++ 6 Runtime Library
Or
Another Way to Help Me.
thanks for your help
|
|
|
|
|
When you compile a project, you get an exe or a dll or a lib file.
Exe file can run on every windows platform, that's the application extension.
Dll file can be run also if you install a application using it.
Lib file must be link into an exe or a dll before usage.
|
|
|
|
|
If the problem is that you get some error-messages about missing modules, you just need to locate the .dll:s missing and copy them to the new computer (like you do with the VB runtime).
/moliate
|
|
|
|
|
Use the depends app, that application will say you the depends of your application, the dll that you need. You need to take care because some dll are in the operating system, and other can be in a old version....
Best Regards.
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
I am developing a media player,but due to a stack overflow during runtime my whole application crashes...how to tackle this problem. Please help me???
harish
software engineer
|
|
|
|
|
Use the heap instead of the stack. Did you have a fonction using a array define on the stack like:
void myfunction(tatata)
{
DWORD data[1024]; // 1024*4 bytes allocated on the stack
DWORD *pdata = new DWORD[1024]; // 1024*4 bytes allocated on the heap
....
}
Does that help?
|
|
|
|
|
Use the debugger.
Run your program inside the debugger and before it gets to the stack overflow, open the Debug/Exceptions box and look for the "Stack Overflow" exception. Click on the "Stop always" radio button and then OK. Continue running. When the stack overflow occurs, the program will stop at the point where it's happening. That should give you a clue as to why it's happening and you can then fix it.
Good luck,
Alvaro
|
|
|
|