|
Thanks A Lot jochen
I followed your post and get succeed in getting Bus Relation value[Device Id] which gives me Printer name.
Thank you Very Much Again.
Regards
Y
|
|
|
|
|
Nice to hear that you solved the problem and thank you for the feedback.
|
|
|
|
|
Hi,
I working on a plugin system for a MFC C++ application. So I started with a small plugin DLL with a simple function creating an object of a class with virtual functions and returning that object to the caller. The object is created on the heap and actually a pointer to the object is returned.
In the main application a function loads the plugin (LoadLibrary), searches the exported function (GetProcAddress) and executes the function. As result the created object is available, as expected. So far so good.
Btw: the class is already declared in a different DLL linked by both the main application and the plugin DLL.
Next I want to unload the plugin with FreeLibrary.
That leads to the problem of a corrupt vftable of the created object. I found out, that the __vfptr is in the memory of the plugin DLL and so unloading the DLL destroys that memory and the __vfptr is not usable anymore.
Is there any way to change that behaviour?
with kind regards,
Joerg
|
|
|
|
|
In a word: No. If the object is created from a DLL that was dynamically loaded, then you must not unload the library until all instances of the class have been deleted.
Use the best guess
|
|
|
|
|
If you unload the DLL then you remove all code from memory that represents the implementation of class methods including the actual vtable that points to these methods. Another important thing: the code that deletes the object should be in the DLL (same is true for object creation, normally you create an instance by calling an exported dll method)! One good solution to that is putting a Release() method into your class and Release() could simply do the "delete this;" stuff. Delete all class instances before unloading the DLL.
|
|
|
|
|
You could create a static function in the dll where the class is defined. This function would create the object inside the dll with parameters from the plugin. It returns the pointer to the plugin who passes it to the application. This way the object should be defined entirely in the dll so that you can unload the plugin.
However you should consider, whether it is really necessary to use the plugin unter these circumstances i.e. when the application knows the actual type of the returned object.
|
|
|
|
|
Creating webbrowser as below
hret=CoCreateInstance(clsid,NULL,CLSCTX_ALL,IID_IUnknown
,reinterpret_cast<void**>(&m_pUnknown));
hret=m_pUnknown->QueryInterface(IID_IWebBrowser2,(PVOID *)&m_pBrowser);
ASSERT(SUCCEEDED(hret));
but when i say
HRESULT hret = m_pBrowser->Navigate2(varURL,&noArg,&noArg,&noArg,&noArg);
its opening new IE window on WIn7. But in Xp sys its not happening like that. I dont want to open new IE window
Any one has any idea why it is opening on new IE window on Win7
|
|
|
|
|
It's quite possible (and not unknown) for later versions to contain stricter interpretation of optional parameters. The documentation[^] shows how to set the required behaviour.
Use the best guess
|
|
|
|
|
I tried a lot on this but couldn't able to resolve this
Can any one help?
|
|
|
|
|
narasingubhanu wrote: I tried a lot on this but couldn't able to resolve this Tried what, and what results did you get? Please don't expect people to be able to guess what you have done.
Use the best guess
|
|
|
|
|
HRESULT hret = m_pBrowser->Navigate2(varURL,&varFlag,&vFrame,&noArg,&noArg);
I passed browser constants and frame also but still its opening in new window and if i call any browser function after that its crashing
ex:m_pBrowser->get_Busy(&bBusyFlag); //crash application
|
|
|
|
|
You need to use your debugger to find out why it's crashing.
Use the best guess
|
|
|
|
|
Thanks for suggession.
if you want compelte problem here it is
I am printing htnl doc from url. In xp with out opening new IE browser we will get file save dialog while printing the doc
File save dialog opens at m_pBrowser->ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER,&noArg,&noArg);
at this point if you press Alt+tab you can see IE icon.
but in Win 7 directly opening IE window at Navigate2 function
|
|
|
|
|
Hi,
I am working on a project in which I use DirectShow to Play / Pause / Stop the video. I am using progress bar which increments along with the video. Now I want to use Slider bar instead of the progress bar which should increment along with the video. Also user should be able to control the video using slider (move forward / backward). I had used timers in which I am incrementing the progress bar.
How to use Sliders so that while video is playing, slider should increment along with the video showing the progress of the video.
Anybody have any idea or any sample code for the same.?
Regards,
Mbatra
|
|
|
|
|
Have you looked at the CSliderCtrl members? I'm seeing SetRange() and SetPos() , both of which look like they'd be part of the solution.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
modified 10-Jun-13 14:44pm.
|
|
|
|
|
Hi David,
Thanks for the reply.
These functions we can use to update the position of the slider. I
want to make the slider synchronize with the timer and the duration of the video. At any time when user drags the slider forward or backward, the playing video should also move forward or backward and timer value should also be changed.
You can say, I want the functionality similar to YouTube, playing a video and user can move forward or backward. Accordingly the video and the timer changes their values.
Do you have any sample code for the same.?
Regards,
Mbatra
|
|
|
|
|
That article I referenced you to earlier shows how to use the IMediaSeeking::SetPositions() method. You'll call this method when handling the TRBN_THUMBPOSCHANGING message.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
mbatra31 wrote: You can say, I want the functionality similar to YouTube, playing a video and user can move forward or backward. Accordingly the video and the timer changes their values.
you can follow this logic
- get total video length in seconds
- create slider based on resulting time
- handle sliderctrl message http://msdn.microsoft.com/en-us/library/ekx9yz55(v=vs.80).aspx[^]
- move your video time line appropriately
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Hi,
I have followed the similar points. At point No.3, I want to forward the video in proportion to the slider value. But issue is how to get IMediaSeeking interface reference to the running video. So that I can set the position of the next seek frame.
Regards,
Mbatra
|
|
|
|
|
mbatra31 wrote: But issue is how to get IMediaSeeking interface reference... In that DirectShow example I referenced you to (several times now), look at the PlayerClass::Initialise() method. It shows how to get references to three different interfaces, IMediaSeeking included.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Hi.. I have implemented ECC algorithm in C++ and it is working fine with g++ compiler... I need to apply this program to network simulator - 3. Complier of NS-3 is "./waf", there it is not building and it is giving countless errors mainly regarding "ostream".
there is a line regarding ostream in my header function....---
// ostream handler
template<int T>
friend ostream& operator<<(ostream& os, const FiniteFieldElement<T>& g)
{
return os << g.i_;
}
|
|
|
|
|
Manoj7390 wrote: it is giving countless errors Without the detail of those errors no one can guess what is wrong.
Use the best guess
|
|
|
|
|
In the main program i am calling another header function called "FiniteFieldElement.h" function. In that function i have used --
// ostream handler
template<int T>
friend ostream& operator<<(ostream& os, const FiniteFieldElement<T>& g)
{
return os << g.i_;
}
I am calling this function and using "ostream" in so many places in main function. I am getting the errors like..
/usr/include/c++/4.6/ostream:493:5: note: template<class _chart,="" class="" _traits=""> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)
/usr/include/c++/4.6/ostream:473:5: note: template<class _traits=""> std::basic_ostream<char, _traits="">& std::operator<<(std::basic_ostream<char, _traits="">&, unsigned char)
/usr/include/c++/4.6/ostream:468:5: note: template<class _traits=""> std::basic_ostream<char, _traits="">& std::operator<<(std::basic_ostream<char, _traits="">&, signed char)
/usr/include/c++/4.6/ostream:462:5: note: template<class _traits=""> std::basic_ostream<char, _traits="">& std::operator<<(std::basic_ostream<char, _traits="">&, char)
/usr/include/c++/4.6/ostream:456:5: note: template<class _chart,="" class="" _traits=""> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)
/usr/include/c++/4.6/ostream:451:5: note: template<class _chart,="" class="" _traits=""> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)
|
|
|
|
|
|
I think it is not the problem with the code, because i am getting the output with g++ compiler. Now i am using ./waf compiler for NS-3, where i am facing problem. I am not sure ostream is supported by NS-3 because there they use NS_LOG_UNCOND("message") instead of "cout".
I am getting errors where i have used ostream. What do you mean by "ostream" and is it compiler dependent.
|
|
|
|