05-08-2018, 05:08
|
Friend
|
|
Join Date: Jan 2002
Posts: 59
Rept. Given: 4
Rept. Rcvd 8 Times in 4 Posts
Thanks Given: 1
Thanks Rcvd at 14 Times in 8 Posts
|
|
Quote:
Originally Posted by bugficks
w/ thread_local its a per thread map and lib is loaded/freed per thread, if that thread exits is see no problem there. OS lib ref count is the same as it was before thread was entered.
well again, this was just a c++ type safe replacement for original post, nothing more nothing less. if you want to do an uber lib loader youre free to do so
if you want to optimize lookup you could as well just add an optional opaque pointer and store some infos there.
e.g.:
PHP Code:
template <typename F, typename... ArgTypes>
auto DynCallT(void **opaque, LPCTSTR libName, LPCSTR funcName, ArgTypes... args)
{
if(opaque && *opaque)
{ (cast_opaque_t)(opaque) ...}
...
if(opaque)
{ *opaque=... }
...
}
void *ppp=0;
for(...) DynCallT(ppp, ...);
anyways, it is what it is and it doesnt want to be more
|
Is it possible to have a pure ANSI C implementation of the above code
|