|
|
Use LoadLibrary function
and use GetProcAddress function to get the address of the methods
The GetProcAddress API sucess only if the Dll exports the function as follows
__cdecl __declspec(dllexport) returntype function name (parameters,...);
because C++ Mangles the function names due to that GetProcAddress fails,to avoid that use C style definition of the function
Knock out 'T' from CAN'T ,
You 'CAN' if you think you 'CAN'
-- modified at 7:12 Thursday 18th May, 2006
|
|
|
|
|
HMODULE hModule = LoadLibrary("path of dll");
Get the function pointer(typedef return type
ex:- typedef int (*funptr) ("arguments");
funptr f1 = GetProcAddress(hModule,"function name");
f1("arguments");
r u from AP??
Regards,
Prashanth.v
|
|
|
|
|
1.Include the exported .h file(this file should contain the method declarations that u want to use) of the Dll file into your current application.
2.Copy and paste the .dll and .lib file into u r application \debug or \release folder.
3.Go to Tools->options->Directories and include the .lib and .h file paths.
Now u can call the methods of the dll as normal methods.
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
It is a activex control,i want to use it to judge whether size of screen changed.
|
|
|
|
|
chybin wrote: It is a activex control,i want to use it to judge whether size of screen changed.
Handle WM_DISPLAYCHANGE Message!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I cant find WM_DISPLAYCHANGE Message,this control have no message! I use VC++ 7.0.
|
|
|
|
|
chybin wrote: I cant find WM_DISPLAYCHANGE Message,this control have no message! I use VC++ 7.0.
you have manually add that in your application
i.e.
OnMessage(WM_DISPLAYCHANGE,OnDisplayChange)
Function Decalaration
LRESULT YOURCLASS:OnDisplayChange(WPARAM wParam,LPARAM lParam)
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hi,
I have a timer which was working proeprly before adding threads, now i have added thread funtion after that timer is not displayed on the dialog window can anyone tell me what is the cause .....
-------------------------------------------
BOOL CStatusDlg::OnInitDialog()
{
CDialog::OnInitDialog();
HANDLE hr;
hr = CreateThread(NULL,0,(unsigned long (__stdcall *)(void *))WorkerThreadProc,this,0,0);
return TRUE;
}
---------------------------------------------------
UINT WorkerThreadProc(LPVOID Param)
{
CStatusDlg* status = (CStatusDlg *)Param;
time(&lStartTime);
SetTimer(NULL,ELAPSED_TIMER, 1000, NULL);
INDX.startIndex();
return true;
}
------------------------------------------------------
void CStatusDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == ELAPSED_TIMER)
{
time(&lStopTime);
cteElapsedTime = CTimeSpan(lStopTime-lStartTime);
CString csElapsedTime;
csElapsedTime.Format("%02d:%02d:%02d",
cteElapsedTime.GetHours(),
cteElapsedTime.GetMinutes(),
cteElapsedTime.GetSeconds());
if(IsWindowVisible())
{
m_TIME.SetWindowText(csElapsedTime);
}
}
CDialog::OnTimer(nIDEvent);
}
-----------------------------------------------------------------
Regards,
Vinay Charan.
|
|
|
|
|
I think the thread does not know to which dialog the timer belongs.
try change:
SetTimer(NULL,ELAPSED_TIMER, 1000, NULL);
to:
status->SetTimer(NULL,ELAPSED_TIMER, 1000, NULL);
Michel Wassink
We must make user friendly software. Where are friendly users?
|
|
|
|
|
Hi Michel Wassink,
I tryed as u said i am getting below error
status->SetTimer(NULL,ELAPSED_TIMER, 1000, NULL);
error C2660: 'SetTimer' : function does not take 4 parameters
Error executing cl.exe.
|
|
|
|
|
Sorry, my fault.
choose between:
status->SetTimer(ELAPSED_TIMER, 1000, NULL);
or
SetTimer(status->m_hWnd,ELAPSED_TIMER, 1000, NULL);
Michel Wassink
We must make user friendly software. Where are friendly users?
|
|
|
|
|
Hi Michel Wassink,
It's working fine thank you very much..
I have one more problem with timer can u please tell me how to stop the timer???
timer which i have added does not stop.
|
|
|
|
|
Use
KillTimer(ELAPSED_TIMER);
to stop the timer.
Michel Wassink
We must make user friendly software. Where are friendly users?
|
|
|
|
|
Hi,
I used KillTimer(ELAPSED_TIMER);
i got
error C2660: 'KillTimer' : function does not take 1 parameters
Error executing cl.exe.
then i used KillTimer(NULL,ELAPSED_TIMER);
then no error but timer is not stoping please give me some solution.
|
|
|
|
|
from within the thread:
status->KillTimer(ELAPSED_TIMER);
or
KillTimer(status->m_hWnd, ELAPSED_TIMER);
Michel Wassink
We must make user friendly software. Where are friendly users?
|
|
|
|
|
Hi Michel Wassink,
KillTimer(status->m_hWnd, ELAPSED_TIMER);
is working thank you very much..................
|
|
|
|
|
Hi Michel Wassink,
i tryed using
KillTimer(ELAPSED_TIMER);
error C2660: 'KillTimer' : function does not take 1 parameters
Error executing cl.exe.
can u please tell how to stop ....
|
|
|
|
|
vinaycool wrote: status->SetTimer(NULL,ELAPSED_TIMER, 1000, NULL);
do this :-
status->SetTimer(ELAPSED_TIMER, 1000, NULL);
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hi,
This is working fine for me
SetTimer(status->m_hWnd,ELAPSED_TIMER, 1000, NULL);
i want to know how to stop the timer ....
|
|
|
|
|
vinaycool wrote: This is working fine for meSetTimer(status->m_hWnd,ELAPSED_TIMER, 1000, NULL);i want to know how to stop the timer ....
Ok, KillTimer(..) will stop the timer
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
hi,
I tryed using
KillTimer(ELAPSED_TIMER);
but i am getting error
error C2660: 'KillTimer' : function does not take 1 parameters
Error executing cl.exe.
|
|
|
|
|
Since you're using the raw API call, you have to provide it with the window handle the same way you called ::SetTimer().
It's supposed to be hard, otherwise anybody could do it!
Regarding CodeProject: "resistance is pointless; you will be assimilated"
|
|
|
|
|
Hi,
Thanks for the information it will be usefull for me.
|
|
|
|
|
vinaycool wrote: KillTimer(ELAPSED_TIMER);but i am getting error
what about KillTImer(status->m_hWnd,ELAPSED_TIMER)
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|