Visual C++ :: Calling Function From OnDraw - Runtime Assertion
Feb 2, 2014
Following function is causing run-time assertion. I am using VC6.0 professional version. My OS is Win7.0. I am calling the function from OnDraw. OnDraw does not contain any other code other than the function call code:
Code:
void CMoireUseCirclesView::UseCircle(CDC* pDC){
int x1, y1, x2, y2;
x1=20;
y1=100;
x2=200;
y2=280;
int color1=0;
int color2=0;
[Code] ....
The assertion is occurring at:
Code:
newPen.CreatePen(PS_SOLID,5, RGB(color1,color2,color3+i));
The error message is:
Debug Assertion Failed
Prog:....
File:wingdi.cpp
Line:1120
Debug is giving following values
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:WindowsSysWOW64kernel32.dll', no matching symbolic information found.
Loaded 'C:WindowsSysWOW64KernelBase.dll', no matching symbolic information found.
Loaded symbols for 'C:WindowsSysWOW64MFC42D.DLL'
[Code] ...
View 7 Replies
Oct 10, 2013
I have a MFC Com Dll that has a CDialog. In the OnCreate event I create an ActiveX control. The dll is hosted inside an executable of mine. In this scenario everything works fine!
The dll is also called from an external executable and then a Debug Assertion in OCCSITE.cpp occurs when I create the ActiveX control. I suspect that in the executable there is no AfxOleInit. I spend some time with this problem and tried to CoInitialize, OleInitialize, AfxOleInitModule and even AfxOleInit in the dll. But all that does not change a thing. If I understand the mechanics then this is an intended behaviour and should be done in the host exe.
What I observed in the OCCSITE.cpp:
Code:
_AFX_THREAD_STATE* pState = AfxGetThreadState();
if (!pState->m_bNeedTerm && !AfxOleInit())
return hr;
In my executable m_bNeedTerm is 0 and in the external one (where the ActiveX does not work) it is -1. In AfxOleInit this is explained as a special flag to prevent the dll from doing an unnecessary OleInitialize. But as I said even if I call OleInitialize myself I get the Debug Assertion and the ActiveX is not visible.
Is there anything I can do to make the ActiveX control work in the external application? Obviously I cannot Change anything in the application...
View 1 Replies
View Related
Feb 7, 2013
The code below outputs this:
a[]= 00
a[]= 10
a[]= 10
a[]= 10
a[]= 11
a[]= 11
0.
But I was expecting this:
a[]= 00
a[]= 10
a[]= 10
a[]= 00
a[]= 01
0.
This describes how the process is running in machine:
1. Defining a[2]{0,0}; ii=0; aj=0
2. Calling function func(a,ii,aj) |func({0,0},0,0)|
3. func({0,0},0,0) defining w=0; static aa=0
4. func({0,0},0,0) if(0) returns aa=1
5. func({0,0},0,0) for j=0
6. func({0,0},0,0) for Outputing "00", because a[2]={0,0}, look (1).
7. func({0,0},0,0) for if(!0) | because a[0]=0| returns w+=func(a,ii+1,j) |func({0,0},0+1,0)| and calls func({0,0},1,0)
8. func({0,0},0,0) for if func({0,0},1,0) defining w=0
9. func({0,0},0,0) for if func({1,0},1,0) if(1) returns a[0]=1, because of static aa=1, см 4.
10. func({0,0},0,0) for if func({1,0},1,0) for j=0
11. func({0,0},0,0) for if func({1,0},1,0) for Outputing "10", because of a[2]={1,0}, look row #9
12. func({0,0},0,0) for if func({1,0},1,0) for if(!1) |because a[0]=1|
13. func({0,0},0,0) for if func({1,0},1,0) for j=1
14. func({0,0},0,0) for if func({1,0},1,0) for Outputing "10"
15. func({0,0},0,0) for if func({1,0},1,0) for if(!0) |because a[1]=0|
16. func({0,0},0,0) for if func({1,0},1,0) for if if(1==1) |because ii=1, func({0,0},ii,0)|
17. func({0,0},0,0) for if func({1,0},1,0) for if if return 0
18. func({0,0},0,0) for if w=0 |because func({1,0},1,0) gives 0|
19. func({0,0},0,0) for j=1
And from now, something is happening that I cannot understand:
20. func({0,0},0,0) for Outputing "10"
Why so? If func has itselfs local variables, including a[2]={0,0}.
I was expecting this:
20. func({0,0},0,0) for Outputing "00"
So a[2] array is not local variable. Why it happens?
Code:
#include <iostream>
using namespace std;
int func(bool a[],int ii,int aj) {
int w=0;
static bool aa=0;
[Code] ....
View 3 Replies
View Related
May 2, 2015
While running a Doc/View SDI, is there any way to switch from text mode to rtf mode during runtime? Search reveals nothing.
Say I have an editor and I want the app to use text, I can set the ctor as follows.
Code:
CEditorDoc::CEditorDoc() {
// TODO: add one-time construction code here
m_bRTF = FALSE;
}
But once I've done that and compiled the app, while it's running, is there a way for the user (or programmer) to change the mode back to RTF? One solution that occurred to me is to use 2 document classes, but that's a hassle.
View 8 Replies
View Related
Feb 4, 2013
I was created a dynamic library (Used win32 App) & compiled with no error.
Then i was created my main application (MFC) & paste the .h,.lib,.dll files from the source path(dll App Path) to destination path(Main App Path). If i used the below command in my app means the project working good.
Code:
#include "Alg.h"
#Progma Command(lib, "VTAlg.lib")
& also paste the VTAlg.dll in my app path.
here Alg.h contains the some methods , In future i will edit the function like below for my client requirement but no function name & Arguments change. The changes made in inside function(Logically changed) only.
My client contains only .exe file + .dll file.
My requirement, So after change the method i will send only .dll file to my client
If i change my lib file name VTAlg2.lib instead of VTAlg1.lib (But Same Function name & Arg type)means how can i edit the code below
Code:
#include "Alg.h"
#Progma Command(lib, "VTAlg.lib")
& How to run my application at client place.
View 14 Replies
View Related
Feb 23, 2015
how to change the mouse tracking icon during runtime. I wish to emulate the Microsoft Paint app behavior with respect, for example, to click on a toolbar button such as the 'Fill With Color' bucket and have the mouse pointer icon change to a little bucket. I wish to do this in an MFC SDI app.
Here's a bit of code that does nothing that I can tell, although it compiles and runs. (m_hIcon2 is a member HANDLE, IDI_FLOODFILL is an existing icon in the app resources). I have come across numerous other examples that do not work and/or will not compile using VS 2010 Win7(64).
Code:
void CMainFrame::SetNewIcon() {
m_hIcon2 = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_FLOODFILL));
SetIcon(m_hIcon2, FALSE);
[Code].....
View 8 Replies
View Related
Nov 20, 2012
I'm using Visual C++ 6.0 and I'm trying to use fstream to open and read a file that is created only during runtime. This file is written by another function running on another thread, and my program will keep trying to "open" the file until it can be opened, i.e. after it's created, then read 3 numbers from it and execute the rest of its code.
The file test.txt has the content
Code:
1
3
4
My program that polls and opens the file is as follows:
Code:
ifstream fin;
std::string tfile, snum1, snum2, snum3;
long int num2, num3;
tfile.assign(argv[1]);
printf("Begin prog %s
", tfile.c_str());
[code]....
I executed the program by
Code: test_prog.exe "C: est.txt"
and waited about 3 seconds before putting the test.txt file into C:
My output was
Code:
Begin prog C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
fin is open
snum1 =
num2 = 0 num3 = 0
End of prog
The test.txt file disappears after I refresh the C: folder.
So the values for snum1, num2 and num3 are all wrong, as if the file was not read correctly.
If I put a while fin.good() loop after printf("fin is open "); for that entire block (until printing the values of num2 and num3), then I get
Code:
Begin prog C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
Cannot open file C: est.txt
fin is open
End of prog
How can I correctly read a file that is only created during runtime?
View 4 Replies
View Related
Nov 10, 2014
Under visual studio, this is a typical run time error,
Code:
void func(int x){
x = 3;
}
int main() {
int x;
func(x);
}
When x is passed to the function func, it is not initialized. But my question is that why it should be an error? On the other hand, if I change the definition of func a little bit like this,
Code:
void func(int& x) {
*x = 3;
}
int main() {
int x;
func(&x);
}
Now in main, x is still not initialized, but this time there isn't a run time error like "the variable is being used without being initialized. Why?
View 5 Replies
View Related
Feb 19, 2014
Is this possible?
int myfunc( int a, int b, char * c )
char a = "(int)myfunc()";
char b = "(int,int,char*)"
call(a, b, ...) // Function name and return type, params
I want to do function what registers forward what will get callback if the time is right. Basically then i dont need to edit and add extra functions into source files. I just have to include header and use register forward function. If there is anything close to this it would be perfect!
View 5 Replies
View Related
Jun 8, 2014
I have this sample code, that calls a function in a DLL. The function Callback is provided to the DLL as an argument, in order for the DLL to notify my program of relevant changes.
sample:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <winbase.h>
#include "TcAdsDef.h"
#include "TcAdsApi.h"
using namespace std;
void _stdcall Callback(AmsAddr*, AdsNotificationHeader*, unsigned long);
[Code] ....
I would like to change this code, so that there is a Main class that opens the connection and there are several separate classes (as below) that register themselves for a specific variable and get notifications if that value is changed. The reason for this is that I want to get several notifications for several independent events and I don't want them to mix. I figured this should look something like this:
class.h
#ifndef INACLASS_H
#define INACLASS_H
#include "Main.h"
class InAClass {
public:
InAClass(Main* mainClass, std::string iolocation);
[Code] ....
Unfortunately this gives me an error:
error: cannot convert 'InAClass::Callback' from type 'void (InAClass::)(AmsAddr*, AdsNotificationHeader*, long unsigned int)' to type 'PAdsNotificationFuncEx {aka void (__attribute__((__stdcall__)) *)(AmsAddr*, AdsNotificationHeader*, long unsigned int)}'
At first I thought this was because I don't have the namespace "using namespace std;" on top, but then I should be able to find something that specifically needs to come from the std namespace and is not marked as such. I don't want to rule the option out, but so far I could not find anything like that.
An alternative explanation might be that the Callback function needs to be global, but if I make it global, how can I distinguish between several Callback functions?
View 7 Replies
View Related