Is it possible to have a Chromium browser inside of a plugin? - c++

I'm trying to embed a chromium browser into my C++ plugin, which will be run inside of a host application. This is my first time working with chromium, so please forgive my ignorance.
I've got the program running to the point where cef is initialized and the browser is instantiated with no asserts or issues. However, the browser gets stuck loading things. I've noticed that during the instantiation of the browser, the host application raises an error about misused command line arguments. Is chromium trying to receive messages from the command line? If so, how can I receive those messages when my application is a plugin?
I can reproduce the host application's error by calling it from the command line with unknown arguments (Ex. "C:/HostApplication.exe -someRandomString").

"Chrome Frame" is very close to what you're describing: https://developers.google.com/chrome/chrome-frame/
The good news is, chrome frame, like the rest of Chromium project is open source, so check out the source: http://code.google.com/codesearch#OAMlx_jo-ck/src/chrome_frame/

Related

Qt command line arguments error

I'm a beginner in Qt and currently working on a project, after I've made some changes in my code I couldn't run it, then fixed it but when opening the project the message
Unable to send command line arguments to the already running instance. It does not appear to be responding. Do you want to start a new instance of Qt Creator?
keeps popping up, it hadn't before I made those changes. The project runs ok but I had to move it from a file to my desktop because a bug kept appearing. What could I do now to make sure the message doesn't show up anymore? One more thing, I don't know what command line arguments are and I'm sure I didn't use them (at least deliberately).

Windows 10: The application was unable to start correctly (0xc000a200)

I am developing my QT application on windows 10 . The development is complete (as for now).
After run the application in debug mode from QT-creator, I am trying to run the executable from the build directory. But it shows me an "Application Error" dialog with the following message:
The application was unable to start correctly (0xc000a200). Click OK
to close the application.
What is the problem and How to fix it ?!
The error codes are given to you in the error message for a reason. They don't mean anything to regular users, but we're programmers and we are the intended audience. Now that Google has been invented, you have absolutely no excuse for not taking the 5 seconds to Google the error code and see what it means.
In this case, 0xc000a200 is an error code that corresponds to STATUS_NOT_APPCONTAINER. The master list of COM error codes is in the Windows SDK headers, specifically ntstatus.h. If one looks this one up, one sees the following description:
This operation is only valid in the context of an app container.
Now, admittedly, once you get to this point, you may discover that you are in well over your head. You may not have any idea what an app container is, and certainly no clue about how to fix it. But at least then you would be able to ask a good question, which will go a long way to getting you a good answer.
But let's see if you can get lucky this time anyway. This error is most commonly encountered when an application that is not inside of an app container tries to load a DLL that is marked as being part of an app container. It is the linker that is responsible for marking a DLL as being or not being part of an app container, controlled by a series of options for whatever linker you're using. On Microsoft's linker, it is /APPCONTAINER:YES and /APPCONTAINER:NO that control this. I'm not sure what toolchain Qt Creator uses, but if it is not Microsoft's, this should at least get you started looking in the right place in that linker's documentation. Make sure that all DLLs used by your application are not being marked as part of an app container.
The option should be off by default for a regular C++ desktop application project, but it's possible that one of the DLLs started out life as part of a Windows Store app. Or it's possible that the switch just got thrown accidentally.
I had the same error, but the approved solution wasn't the cure. What I found is that I had installed the wrong Qt compiler support packages. For me it was Qt 5.9.1 on Windows 10 64 bit to use with Visual Studio 2017. When installing Qt I selected the "msvc2017 64-bit" option. Sound good, right? Wrong: what I wanted was the "UWP x64 (MSVC2017)".

Visual Studio 2015 error: Unable to start debugging. Unexpected GDB output from command "-target-select remote :5039". Remote connection closed

I see the following error whenever I try to debug "Cross Platform" under "C++" category: "Unable to start debugging. Unexpected GDB output from command "-target-select remote :5039". Remote connection closed"
I've installed all of the contents when I downloaded Visual Studio 2015 community and I ran it on Windows 10 Pro which supports Hyper-V.
I've been searching a solution for this and I've found an assumption:
"What is your debug target, the VS Android Emulator? When we saw this before it turned out to be a bad emulator image. Do you have this problem with all targets (e.g. if you try a physical device) or just one?"
In my case, I just tried this via Emulator(VS Emulator 5" Lolipop (5.0) XXHDP Phone (0x86 -...)
So I've sent an Email to VS 2015.
And the answer was like this:
"Sorry for the delay in responding we were looking at an emulator image of another user that ran into this problem so I was waiting until we had the results of that investigation to report back. We actually were not able to find anything wrong the emulator itself, our current hypothesis is that it is a network or adb problem interfering with GDB’s ability to connect to GDB server on the remote machine. Do you see this error every time you try to debug, or if you reboot the emulator will it work sometimes right after the reboot? Next time you see the error, can you open the emulator’s console mode by going go the Hyper-V manager and double clicking the emulator. Then find the location your app installed to and run “gdbserver --version" from the app path and let me know what it says? This will validate if the correct version of gdbserver is on the device."
So we are trying to solve this problem but I'm also asking here just in case.
Is there anyone who has magical solution for this problem?
I'll put a comment on this if I figure out how to solve this.
Thanks in advance.
** Following answer is from the manager of Visual Studio 2015:
You are only the second person who has run into this issue, and the first person that ran into it provided their everything works correctly when we run their .vhd on our machines so it appears to be some strange problem where gdbserver (which comes from the Android NDK provided by Google) crashes only when running on certain machines. Unfortunately the .vhd you provided does not appear to be the correct one it won’t boot for me. You can see the .vhd file being used by the emulator if you look under the settings of the emulator in your Hyper-V manager. .However given we got the other person’s .vhd you can hold off providing any additional information at this point. I’m waiting to hear back from the emulator team on if they have any ideas since this appears to be an issue only on specific machines since.
If you don’t mind my asking, if you don’t have a background in computers what inspired you to try C++ on Android? That scenario will be significantly more complicated than doing Java on Android.
It's been almost two months since I got this answer but I haven't got any additional response from them yet. So, I ended up quitting developing an application by using VS2015.
If you run into this problem, there are only two ways to go. Change your computer or stop developing application via VS2015.
If the project name contains spaces, the whole remote debugging fails. Visual Studio also creates weird paths. When checking out the "Blink1 for Raspberry Pi" template, I named the Project "Blink1 for Pi", which resulted in a path like this:
~/projects/Blink1?/for/pi/PI/for/pi....
And all the debugging failed. When I recreated this keeping the project name "Blink1", everything worked fine. It's a pity, that spaces aren't handled here...

C++ REST SDK Sample on Galileo

I would like to run the sample of C++ REST SDK posted in the Windows Developer Program site: https://ms-iot.github.io/content/Casablanca.htm
I was very careful to follow the steps, also using the version 2.2 of cpprest lib instead the latest one (2.4), the result is that I could run successfully the project and deploy it on my Galileo, but when the client object try to resolve the request using the sample posted in the page I received the following error:
Error exception:Error in: WinHttpSendRequest.
The code is the main.cpp in the link above, and I'm trying to run it in my Intel Galileo.
Appreciate any help because it's a bit frustrating can't find info about this error.
The most common cause of errors in the WinHttpSendRequest API are networking/DNS/firewall issues.
One easy thing to check is to ping www.bing.com from the Galileo (Telnet) command line. If that fails, then that's almost certainly the cause. You can replace www.bing.com with the IP address as a quick-and-dirty workaround.
If that's not it, is there a possibility that a firewall is blocking your request (e.g. if you are behind a corporate firewall)?
Did you run the code in the Visual Studio debugger? Can you narrow down where the exception occurs?
If that doesn't help and you're stuck, you might want to try the non-Casablanca approach: http://msdn.microsoft.com/en-us/library/windows/desktop/ms737889(v=vs.85).aspx. Personally, I find Casablanca's asynchronous structure to be confusing, and it's not of much benefit in my projects (basic HTTP client requests). Support for Winsock is packaged with the Windows image running on the Galileo, so no messy prereq configuration required.
Dan.

Windows device driver don't start with parameter 0

It's my first device driver for Windows and I followed the step-by-step instructions at http://www.adp-gmbh.ch/win/misc/writing_devicedriver.html but my device driver doesn't start at windows boot and also the event viewer shows an error and when I click on the error in the event viewer the thing crashes. When I start the driver manually after windows boot it works. Is this tutorial incomplete? I already found the sources in the internet but not at this site and I think I found an error in his sources, too, he just forgot to add a header file to the "Writing Events from a Device Driver. I can compile it without any errors in DDK.
Yes, this tutorial is incomplete and very old. Install WDK and follow one of WDK samples, written using plain WDM, or better, KMDF. Driver installation should be done using .inf file, and not by manual Registry editing.
If you still want to know why this driver doesn't start, debug it. Possibly its DriverEntry or CreateCamel function fail from some reason.
Another thing you can do without debugging, is to add a lot of KdPrint statements to the driver, and watch them using WinDbg, or DebugView.