>>
>> The first one isn't decorated, the second one is.

IT> Have you actually tried it? Build a DLL with this code, check with 
IT> Dependency Walker. These two functions get exported under the following
IT> names:

IT> [EMAIL PROTECTED]
IT> ?PI_TestEx@@[EMAIL PROTECTED]

IT> The first name is decorated, the second is mangled (there's a difference
IT> between these two things, but it doesn't matter in this context where 
IT> all you want is to get an exported name exactly as it is in your code).

IT> Igor Tandetnik

I see your point. As someone else posted though, you can control this
with the declaration.

/*
** Make sure we can call this stuff from C++.
*/
#ifdef __cplusplus
extern "C" {
#endif

__declspec(dllexport) HANDLE _cdecl PI_Test(const char* pszFilename)
{
        return(NULL);
}

#ifdef __cplusplus
}
#endif

__declspec(dllexport) HANDLE _cdecl PI_TestEx(const char* pszFilename)
{
        return(NULL);
}

Results in:

  using "Dumpbin /exports" on the link library
  ?PI_TestEx@@[EMAIL PROTECTED] (void * __cdecl PI_TestEx(char const *))
  PI_Test


  using "Dumpbin /exports" on the dll
  
    ordinal hint RVA      name
          4    0 00001730 ?PI_TestEx@@[EMAIL PROTECTED] = 
@ILT+1835(?PI_TestEx@@[EMAIL PROTECTED])
         10    9 0000110E PI_Test = @ILT+265(PI_Test)




-- 
Best regards,
 Teg                            mailto:[EMAIL PROTECTED]

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to