|
FASTian wrote:
...i get loads of unresolved symbols errors. Any ideas how to deal with this or what i am doing wrong here.
The exported function is not being called correctly. Make sure C++'s name mangling is not biting you.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I'm curiuos about this too. Could you expound upon "name mangling" and how to avoid it?
|
|
|
|
|
Try this search.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hey everybody,
I'm hoping more people can shed some light onto my font problem that I discussed in an earlier post.
Our application has a drawing area where the user can assign font type and size to a particular object. We're currently storing the logical units for the font, is this a bad thing? Will this display the same on all output devices (printer/screen etc)?
To me it seems like its better practise to store the actual point size, what's the dis/advantages of each and why? anyone?
Mike.
|
|
|
|
|
The only thing I would say is that dealing with fonts and a point size is usually much easier as you can get the actual point size for any given DC (be it printer or screen etc) using:
size = -MulDiv(pointSize, pDC->GetDeviceCaps(LOGPIXELSY), 72);
With logical coordinates you probably have to go through another translation first.
Also, it may depend on what DC mapping mode you are using.
Roger Allen - Sonork 100.10016
Strong Sad: I am sad I am flying
Who is your favorite Strong?
|
|
|
|
|
Hello! i have a small problem
in my thread class (called CHilos) i declared as a member variable:
[CODE]
struct Param {
HWND *ventana;
CHilos *hilo;
} *param;[/CODE]
and in my thread 'begin' function i have:
[CODE]
void CHilos::Comenzar(LPVOID lParametro)
{
DWORD handle;
param->ventana = static_cast<hwnd *="">(lParametro);
param->hilo = this;
CreateThread(NULL,0,CHilos::ThreadProc,(LPVOID)param,0,&handle);
}
[/CODE]
and i get a runtime error in both param-> lines. In the createThread i used to pass this instead of param.
[CODE]CreateThread(NULL,0,CHilos::ThreadProc,(LPVOID)this,0,&handle);[/CODE]
what am i doing wrong?
thanks!
|
|
|
|
|
param = ??
param is a pointer to a struct Param, meaning its pointing to a struct param, but which one?
you do have something like this?
Param xParam = {0};
param = &xParam;
or maybe like this?
param = new Param;
or again like this?
param = (Param*) calloc (1, sizeof(Param));
in the last two case dont forget to delete (for new), free (for calloc) respectively when you are done using the param (thread end?).
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Change:
<small>kfaday wrote:</small><br />
DWORD handle;<br />
param->ventana = static_cast(lParametro);<br />
param->hilo = this;
to:
DWORD handle;<br />
Param *pNewParam = (Param *) lParametro
Now you can access your members with pNewParam !
* Don't wish it was easier, wish you were better! *
|
|
|
|
|
thanks to both of you!!
i should have came up with that!
|
|
|
|
|
HI,
PLZ tell me how can i place JPEG , GIF or BMP as a background on dialog ..
Actualy i want a beautifull background of my application (MFC Dialog Based)
if any source code or help
i not wana a use ACTIVEX ..
thanx
|
|
|
|
|
Just query for 'skin' in your article search and you will see tons of it. From dialogbox to combobox.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Actualy i have my own made JPEG ,BMP, GIF..
and i want to use these a background
and i want to place controls like button , combos etc on that background
|
|
|
|
|
How can i get the locale system time and date?
Can u give some examples?
Please help me..
Thanks everybody...
|
|
|
|
|
Try this, a simple one (MFC)
CTime t = CTime::GetCurrentTime();
struct tm* osTime;
osTime = t.GetLocalTm( NULL );
ASSERT( osTime->tm_mon == 2 );
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
i hope following will help u
CTime stime = CTime::GetCurrentTime();
CString s = stime.Format("%A, %B %d, %Y,%I:%M : %S :%p" );
AfxMessageBox(s);
chk it
take care
|
|
|
|
|
Hi,
I try to use Script Control OCX in VC++ 7.0
i can do that.My problem is that i want to just compile script file by using AddCode method.But it is do compile and run script code.how can i disallow running script:
if (m_TargetEngine == CLSID_JScript)
{
m_ScriptControl.put_Language("JScript");
}
else
{
m_ScriptControl.put_Language("VBScript");
}
m_ScriptControl.put_State(0);
UINT column = 0;
UINT line = 0;
UINT Number;
CString Description;
CString Source;
CString Text;
try
{
//it is also do run but i dont want it do that
m_ScriptControl.AddCode(strCode);
}
catch (...)
{
LPDISPATCH lpdisp = m_ScriptControl.get_Error();
DISPID dispid;
OLECHAR* name = L"Column";
CComVariant result;
HRESULT hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
DISPPARAMS params = {NULL,NULL,0,0};
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
column = result.iVal;
name = L"Line";
hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
line = result.iVal;
name = L"Description";
hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
Description = CComBSTR(result.bstrVal);
name = L"Source";
hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
Source = CComBSTR(result.bstrVal);
name = L"Number";
hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
Number = result.iVal;
name = L"Text";
hr = lpdisp->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
hr = lpdisp->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_PROPERTYGET,¶ms,&result,NULL,NULL);
Text = CComBSTR(result.bstrVal);
CString strResultFormat;
strResultFormat.Format(_T("Line[%d] Column[%d] %d>> %s %s (%s)"),line,column,Number,Text,Description,Source);
m_TaskList.AddString(strResultFormat);
}
|
|
|
|
|
Hi,
I am unable to simulate Extended ASCII characters from 127 to 254 through keybd_event()function.
keybd_event(0x9A, 0, 0, 0); //0x9A IS HEXA VALUE OF extended ASCII char(154)
keybd_event(0x9A, 0, KEYEVENTF_KEYUP, 0);
/* The below mentioned code has not take any effect
keybd_event(0x9A, 0x45, KEVENTF_EXTENDEDKEY|0, 0);
keybd_event(0x9A, 0x45, KEVENTF_EXTENDEDKEY| KEYEVENTF_ KEYUP, 0);
the said code is delimited by default keyboard driver loaded in microsoft word and not sending message to Word or Excell application in WPARAM wparam (wparam is only using the Virtual keys in keyboard, which is already defined).
*/
keybd_event(0x9A, 0, 0, 0) ;
keybd_event(0x9A, 0, KEYEVENTF_KEYUP, 0) ;
code has not been produce the character "Ü". I want to access the Extended ASCII char codes 127-128. and the character sets should be transmitted to wparam (parameter) in SetWindowsHookEx() function.
I am also having a doubt, whether the wparam (parameter) may how modified in messages i.e. pMsg->(). and how to load the Unicode driver in VC++ programs for accessing the Extended characters.
If any idea or little bit of code available, I will oblige.
Thanking you.
by KKSM
|
|
|
|
|
I think your codes should be written as
keybd_event(0x154, 0, KEYEVENTF_EXTENDEDKEY, 0)
instead.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
I am currently trying to create a static library using microsoft VC++ 6.0. As I am new in this area, please bear with me. I have several questions regarding the building and creation of static libraries in VC++:
1. What should I do if my library needs to use another static library? Currently I just add the required .lib files into my project, and because of this my resulting .lib file become quite big in both the debug and release version. Further, since the apps that use my library will also use those static libraries, won't that be a waste of space since those static libraries are linked twice (once in my library and once in the apps)?
2. I already declared a class in a separate header (and implemented it in a .cpp file). My static library will define and provide interface to a class which derives from it. Because the derived class declaration is contained in another file, I now have two header files in my project. Does this mean that any apps that use my library will obtain interfaces to both the base class and derived class? I only want the apps to obtain interfaces to the derived class only.
I hope my question is clear. Thanks a lot!
|
|
|
|
|
Hi,
Static librarys eh.
Well,
1. Nothing. It's the user of your library that will have the problem ). So if your libray, LibraryA uses something from LibraryB, then its your client EXE that will have to link to both LibraryA and LibraryB. Pain eh. Especially if the library you are using is not your own.
2. Yes. Unfortuantly if you put something like
class CDerived : public CBase
{
}
in a header file that is part of your library, the user of your library will also need access to the .H for CBase to compile it.
Unlike DLL's - you can't say export some of CDerived's methods, but none of CBase's.
|
|
|
|
|
Can someone tell me how to capture key presses when they are being entered into a Text box.
I did add the ON_WM_KEYUP and OM_WM_KEYDOWN messages but breakpoints in there procedures (OnkeyDown etc) were never reached.
|
|
|
|
|
Hi Sweep,
One way is to use PreTranslateMessage virtual function, e.g.
BOOL CMyWindow::PreTranslateMessage(MSG* pMsg)
{
BOOL bEatMe = FALSE;
if (pMsg && pMsg->message == WM_KEYDOWN && pMsg->hwnd == m_edit1.GetSafeHwnd())
{
BOOL bShift = (GetKeyState(VK_SHIFT) < 0);
BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0);
BOOL bAlt = (pMsg->message == WM_SYSKEYDOWN);
bEatMe = FALSE;
}
return (bEatMe) ? TRUE:CDialog::PreTranslateMessage(pMsg);
}
If you are trying to do clever things, my advice would be to create a class (derived from CEdit) and use this in your views/dialogs.
Hope this helps,
Andy
|
|
|
|
|
Depends what you want to capture.
If your only intrested in 0 > 9, a > z, A > Z plus a few others like VK_RETURN, VK_ESCAPE etc - the easist way is to add a ON_WM_CHAR handler to your text box class. Anything that has its WM_KEYUP/WM_KEYDOWN translated to a WM_CHAR will be caught this way.
Though - your ON_WM_KEYUP/DOWN handlers should work. Is this text box part of a dialog? Is it being subclased correctly, probably via a DDX_Control?
|
|
|
|
|
The Edit box has not been sub-classed, I assume I need to do that to get the WM_KEYUP/WM_KEYDOWN working.
I just ant to trap the Tab and Return keys.
|
|
|
|
|
lol. Would be them two wouldn't it.
Well, your KEYUP/DOWN handler will and should work for all other keys.
Not however, Tab and return, which are dialog box navigation keys. The system handles these in a different way
"The WM_GETDLGCODE message is sent to the window procedure associated with a control. By default, the system handles all keyboard input to the control; the system interprets certain types of keyboard input as dialog box navigation keys. To override this default behavior, the control can respond to the WM_GETDLGCODE message to indicate the types of input it wants to process itself."
In other words, you'll never get a KEYUP/DOWN for Tab/return as you get a WM_GETDLGCODE which returns DLGC_DEFPUSHBUTTON/DLGC_WANTTAB depending
|
|
|
|
|