|
Hello everyone,
Just confused about DLL function by ordinal concept. Ordinal should be on the other part of by name.
But to use DLL function by ordinal technique, we need,
1. Write a .DEF file and write down function ordinal (index);
2. Use LoadLibrary and GerProcAddress to get the function pointer than use the function.
In (2), we still need to use function name as input parameter to GetProcAddress. So, my question is, DLL function by ordinal technique is not pure by ordinal, still need function name information?
thanks in advance,
George
|
|
|
|
|
MSDN on GetProcAddress [^]
lpProcName
[in] Pointer to a null-terminated string that specifies the function or variable name, or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Thanks CPallini,
My mistake before. I use .DEF file but still use by name approach.
regards,
George
|
|
|
|
|
You actually do need this method if you have a nice C++ "beautified" function name DLL so it can't still rely on function name since ... well, that may change (not fun to stumble on this by yourself, trying to load what you know function name is and then going when watching the insides). As for method, previous reply says it all.
|
|
|
|
|
Thanks Dexterus,
I do not 100% understand the situation you mentioned.
"if you have a nice C++ "beautified" function name DLL so it can't still rely on function name since", could you give us more description or some pseudo code please?
regards,
George
|
|
|
|
|
Hello everyone,
Just to confirm what is the most correct way beyond a just working function.
1.
We need to add extern "C" to both variable/function definition/declaration? Or only need to add to the variable/function declaration?
2.
How about extern? Declaration only or both declaration and definition are required?
BTW: previously, I only add to declaration, but after reading more and more code which add to both declaration and definition, I come to here to ask this question.
thanks in advance,
George
|
|
|
|
|
See here [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
You cheater. You must have Googled!
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Rajesh R Subramanian wrote: You cheater
Off course.
Rajesh R Subramanian wrote: You must have Googled!
Off course again.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
We need to write a server side script to answer all questions posted by George_George. Basically the script would do it by Googling and returning the first 5 links back.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Rajesh R Subramanian wrote: We need to write a server side script to answer all questions posted by George_George. Basically the script would do it by Googling and returning the first 5 links back.
The above holds true for most peaple posts.
On the other hand, some George_George ones are indeed deep & tricky (though ofter matter academic interest) and Google is of little help about.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
I must completely agree with you!
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Thanks CPallini,
1.
I have read the link, for normal function, extern "C" only need to be added to declaration, and if containing function pointer as parameter, we need to add extern "C" to definition as well.
2.
But the link only covers functions, my question is about variables, does the same rule applies to variable we well?
3.
How about your points to my question (2)?
regards,
George
|
|
|
|
|
The link shows that the general behaviour, i.e. use extern "C" only on declarations, may have pitfalls. That's all.
IMHO if you use extern "C" both in declarations and in definitions then you're safe.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Thanks CPallini,
What pitfall do you think?
regards,
George
|
|
|
|
|
The article explained well all the issues.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Hi CPallini,
Which article? You missed the link in your post?
regards,
George
|
|
|
|
|
I need to provide http download resume support in my application. Similar to resume support present in most of download mangers.
Kindly point me to some example code or how should I go about this problem.
http://Faq.Programmerworld.net
(FAQ and Tips for programmers)
|
|
|
|
|
Of course resume depends to that web site that support of it or no.
|
|
|
|
|
That is not a problem as most of Download manger works for most but some site. That is acceptable. But how can I support download resume in VC++ for the sites which provide resume support.
http://Faq.Programmerworld.net
(FAQ and Tips for programmers)
|
|
|
|
|
Sudhir Mangla wrote: Kindly point me to some example code or how should I go about this problem.
See here.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi all,
i am writing a dll on VC6.0 which internally executes a command over command prompt using system() API. while executing the command, command prompt is being displayed on the screen.i don want this command prompt to be displayed on the screen.Is there any method which supress the command prompt from being displayed on the screen,or is there any other API which does as system() API without displaying commandprompt..?
Thanks in advance
kathir
|
|
|
|
|
Look up the ShellExecute() function.
|
|
|
|
|
Member 3869682 wrote: ...executes a command over command prompt using system() API.
What command are you executing?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
hi david,
i m going to execute a "exe" file along with the parameters to be passed to the application. It would be better if i identify a routine which can perform this command line execution and also works on unix and windows as well.
Regards
kathir
|
|
|
|