Visual C++ :: Unable To Invoke JScript Functions From Another Thread
May 6, 2013
I have main thread that creates an WebBrowser2 COM object. and i want to invoke JScript functions on it from another thread. i try to use GIT but still doesn't work for me.. there is a problem with marshal WebBrowser2 for JScript?
I am having a strange problem trying to display a dialog from a UI thread. The dialog simply fails to display. I have a function DisplayFlashBox(), which creates the UI thread:
CUIThread* CIMUIHelper:: DisplayFlashBox(const CString &sMessage, const int nInstrumentUID) { CUIThread *pThread = new CUIThread(); pThread->SetString(sMessage); pThread->SetInstrumentUID(nInstrumentUID); pThread->CreateThread();
[Code] .....
The dialog doesn't display. When I tried debugging, I found the OnInitDialog() method of CIMFlashBox class doesn't actually return. Very strange. I tried calling the DoModal() method instead of Create, but doesn't display the dialog either.
I want to override the operator new in a class, as follows:
class CMyclass { public: void* operator new(size_t); void operator delete(void*);
[Code]....
However, in debug version, whenever MemoryManager.Alloc(size) returns NULL, which means alloation fails, the AfxThrowMemoryException will cause the following exception:
I have a class which I wrote and one of its object is "SerialPort" .NET class. In my MainWindow I created instance of my class called "SerialPortComm", then I send through some functions of mine, commands to the Serial Port, and I receive answers through "DataReceived" event.
But when I trying to use Dispatcher.BeginInvoke to write my data I have received (successfully), nothing shows on the RichTextBox which I'm trying to write to.
What can caused that, and How I can make it works?
SerialPortComm.cs
public partial class SerialPortComm : UserControl { public SerialPort mySerialPort = new SerialPort(); public void Open_Port(string comNumber, int baudRate) { mySerialPort.PortName = comNumber; mySerialPort.BaudRate = baudRate;
I have a SDI application. I created a method OnClose to handle ON_WM_CLOSE of CMainFrm. This onclose() function calls a method in cmyview.cpp. Here, I created a thread that calls global function and from this function it calls another function in cmyview.cpp. At certain condition my application should close at here, I used postmessgae(WM_CLOSE (or) WM_DESTROY). I am having an error as object reference not set on postmessage(WM_CLOSE) it is going to afxwin2.inl page where exception occurs.
Below is code snippetHere, either j or k will only be true depneds on user input)
I need using CSemaphore class in MFC C++ application. I have an edit1 box with multil ine and each line has a string. I'm trying to loop through edit1 box and for each string to start a thread that is using the string for specific function. I'm trying to limit the run of only one thread at the same time with semaphores but all treads start at the same time.
So when i click button1 i loop through edit1 box and start threads:
Code: void CMFCApplication1Dlg::onButton1Click() { int i, nLineCount = edit1.GetLineCount(); CString strText, strLine, mesaj; for (i = 0; i < nLineCount; i++) {
[Code] ....
While looping through edit1 box multi line and starting the threads:
Code: UINT CMFCApplication1Dlg::StartThread(LPVOID param) { WaitForSingleObject(semafor, INFINITE); // wait for semafor to signal THREADSTRUCT* ts = (THREADSTRUCT*)param; // here i'm doing some operations with the string from edit1 box ReleaseSemaphore(semafor, 1, NULL); //release the semaphore for next thread to begin }
Instead of running only one thread at a time all threads start. What am i doing wrong ?
How can I implement the paradigm demonstrated by the code below to run on WinXP?
I want to fork a process or create a thread that shares global variables with the parent process/thread.
The child process/thread monitors the progress of the parent process/thread.
I cannot find documentation for a fork function per se, a Unix term. It might be called something different for WinXP.
I would be happy to use threads instead. But I'm rusty even with Unix application threads; and I know nothing of WinXP application threads.
So any turnkey implementation that demonstrates the simplest use of process or thread functions for my purpose demonstrated below.
In either case, do "forked" processes and threads share global address space in WinXP, as they do in Unix?
I would prefer to avoid the overhead of IPC mechanisms. The "overhead" includes my own relearning curve.
The GUI screwed up my indentation. I would try to correct it. But the proper indentation appears when I edit the posting. I suppose I need to insert real tabs. Haven't figured out how (yet).
Not even real tabs work; and I cannot get the "paste as text" button to behave as I expect. What is the trick for posting indented text in this GUI?
#include "stdafx.h" #include <stdlib.h> #include <Windows.h> long curCount; int isRunning; int _tmain(int argc, char* argv[]) { curCount = 0; isRunning = 1;
Can local variable be passed as the parameter for a new created thread procedure? Here is the example code:
Code: void CDLG::some_function() { CString strFileName="abc.doc"; //local variable, can it be valid for being passed into the following new thread??? //Can strFileName still be accessed from within the stack of thread procedure? ::AfxBeginThread(ProcessContentThread,(LPVOID)&strFileName); }
[Code]...
There is another method using variable on the heap,
I test these code, both methods work as expected, but I doubt whether the first method is a good way. OR if only the second method is the correct way to pass a parameter to a thread.
I have a thread with a while(1) loop in it. When the user push the stop button I would like that thread to end.
I thought about creating a bool and checking its value periodically in the thread and when I push the stop button I change the value of the bool for that the thread breaks out of the loop and finishes.
I'm the author of a realtime MIDI software called ChordEase which makes use of the MIDI aspects of the multimedia API, specifically MIDI input callbacks. In XP and before, these callbacks originated in the kernel and therefore had realtime priority by definition, but from Vista on, they originate in thread pool threads, and have a priority of zero. This is a problem because at priority zero they can be blocked by the GUI thread, causing serious latency, and I have proved that such blocking occurs.
I have experimented with raising the callback thread priority, using either of the following methods: 1) calling SetThreadPriority within the MIDI input callback function, and then setting a flag so that it isn't done repeatedly, or 2) creating a DLL that catches thread creation via DLL_ATTACH_THREAD in DllMain, and calling SetThreadPriority there. The first method is slightly wasteful since the flag has to be tested for every MIDI input event, but it also has the advantage of only affecting the MIDI input threads, whereas the second method affects all threads in the pool regardless of what they're used for. Neither method appears to cause any harmful effects but they make me nervous*. Other possible methods would include 3) using the thread pool API to raise the priority of the pool (assuming I could gain access to the pool handle somehow), or 4) permanently lowering the priority of the GUI thread, which I'm very reluctant to do because of the risk of unintended consequences.
I'm assuming the MIDI input callbacks are using threads in the default thread pool though I haven't actually proved this. Assuming that's so, are these threads private to my application, or is my application sharing them with other applications? Is there a safer way to achieve the result of increasing the priority of MIDI input callbacks? It's incredibly frustrating that MS would change the behavior of MIDI input callbacks so drastically without even telling anyone, but that's how it goes!
[URL] ....
*See for example theses warnings about changing thread pool priorities : [URL] ....
I am trying to make an add-on to IE. This add-on doesn't have any tool bar or any UI.
I am just taking the details of currently loaded HTML page. Basically it is for manipulating one dialog box. I want to get access to the DOM COM interfaces of the dialog box.
Since it doesn't have any button I didn't impliment IOleCommandTarget. I implemented only IObjectWithSIte.
My RGS file contain following in addition to my COM related entries
HKLM { NoRemove SOFTWARE { NoRemove Microsoft {
[Code]...
But I couldn't see my add-on working or even not loading to IE.
I'm using MS' optimizing compiler CL 13.10 (one from VCToolkit 2003) along with WinAPI threading functions and is being compiled as a C console program.
I was wondering how to implement threading in a production setting? I've seen and tried various examples, but they all show basically the same thing - startup in main, run their function, clean up, and then the program exits.
I don't know the proper terminology, but I was looking for two maybe three functions to run simultaneously with a loop in main. I tried a small test program and was wondering if it's setup correctly.
A structure is used as the argument for each function.
int running = 1; // global variable DWORD WINAPI function_1(LPVOID); DWORD WINAPI function_2(LPVOID); main() { HANDLE hndThreads[2]; DWORD threadIDs[2];
[code].....
Right now, function_2 is just a copy of function_1's definition. Everything *appears* to do what I want, but is it setup correctly?
Find the attachment. change the file extension *.lct instead of *.txt. I like to read ASCII Data into Hex, Example : Data "A" as "41" (Refer the jpeg image). How is possible?
I have some trouble with DLL. I created a dll with function
double square(const double * args)
and then in my application defines
typedef double (*MyFunct)(const double *args);
I use LoadLibrary and GetProcAddress to get the function address and cast it to MyFunct. Everything works fine except that when I pass a double *, for example 0x08800350, to the DLL function, the argument becomes totally something else, for example, 0x0aa00460.
I have no clue what happens to the argument value.
I use g++ compiler and need some tips on how to get started with making a c++ GUI. The project I have will need a gui that will allow the user to conveniently invoke executable (the command-line args they take are long and inconvenient to enter manually) and basically print their output streams into a control (e.g. read only textbox). There will be a few graphics involved too (the input for those graphics will be from a file), so I'll need a library that will allow drawLine methods (nothing too fancy, I don't need a gaming library).
Making a GUI in c++. In Java the ability to make a GUI is a part of the native library, so the c++ way seems foreign to me.
My MDI Project(VC++2010 Professional) is unable to catch errors ,though I return ,try catch block. So I developed simple dialog based application .Placed one button on Dialog and on its click written following code
Collapse | Copy Code void CMFCExecDlg::OnBnClickedButton1() { try { int j = 0; int i = 10/j; } catch(CException * e) { MessageBox(_T("Hello"),_T(""),MB_OK); } }
But still program control does not come in catch block it simply gives error. I tried all child classes of CException but no use.I think there will be some setting in Visual Studio. How to handle exceptions
I'm trying to append data to a CFile using FILE* But when execute the application, it always give error saying "No such file or directory". I can actually see the file created but it just keep giving error "No such file or directory".
Is the file being lock or the file just created so it can not be find by fstream(FILE*)? or the file mode is wrong?
Attached is the printscreen of the FILE* pointer. the pointer is evaluated as bad pointer. Why the FILE* pointer not able point to the file being created?
What happens is, after having called the collisionDestroy-function and the program tries to execute the nest loop in the outer for-loop, it all crashes with the text "Expression: vector iterator not decrementable", which I understand is because the iterator will have already become useless. The question is: know this, how do I fix it? I can't seem to get a hang of it.
Here's the collisionDestroy-function (the collisionReaction does nothing but sets a few local variables):
void Enemy::collisionDestroy(std::vector<Sprite*>& sprites) { for (std::vector<Sprite*>::iterator iter = sprites.begin(); iter != sprites.end(); iter++) { Enemy* tmp = dynamic_cast<Enemy*>(*iter); if (this == tmp && collisionType == 3 || collisionType == 1) { sprites.erase(iter); break; } } }
I am trying to build a web application that uses p/invoke to access a method. Similiar to the one used here - [URL] However I keep getting the following error message - Unable to load DLL 'MyDll.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) I read say to change the output directory to match that of the Mydll directory I have tried that and it still does not work.