Fixed dynlib Windows issues after merge.
Signed-off-by: Martin Bremmer <martin.bremmer@adlinktech.com>
This commit is contained in:
parent
3fc777e631
commit
09eba90c90
3 changed files with 56 additions and 69 deletions
|
@ -17,9 +17,9 @@
|
|||
#include "dds/ddsrt/types.h"
|
||||
#include "dds/ddsrt/string.h"
|
||||
|
||||
dds_retcode_t ddsrt_dlopen(const char *name, bool translate,
|
||||
dds_return_t ddsrt_dlopen(const char *name, bool translate,
|
||||
ddsrt_dynlib_t *handle) {
|
||||
dds_retcode_t retcode = DDS_RETCODE_OK;
|
||||
dds_return_t retcode = DDS_RETCODE_OK;
|
||||
|
||||
assert( handle );
|
||||
*handle = NULL;
|
||||
|
@ -31,7 +31,7 @@ dds_retcode_t ddsrt_dlopen(const char *name, bool translate,
|
|||
size_t len = strlen(name) + sizeof(suffix);
|
||||
char* libName = ddsrt_malloc(len);
|
||||
sprintf_s(libName, len, "%s%s", name, suffix);
|
||||
*handle = LoadLibrary(libName);
|
||||
*handle = (ddsrt_dynlib_t)LoadLibrary(libName);
|
||||
ddsrt_free(libName);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ dds_retcode_t ddsrt_dlopen(const char *name, bool translate,
|
|||
/* Name contains a path,
|
||||
* (auto)translate is disabled or
|
||||
* LoadLibrary on translated name failed. */
|
||||
*handle = LoadLibrary(name);
|
||||
*handle = (ddsrt_dynlib_t)LoadLibrary(name);
|
||||
}
|
||||
|
||||
if (*handle != NULL) {
|
||||
|
@ -51,21 +51,21 @@ dds_retcode_t ddsrt_dlopen(const char *name, bool translate,
|
|||
return retcode;
|
||||
}
|
||||
|
||||
dds_retcode_t ddsrt_dlclose(ddsrt_dynlib_t handle) {
|
||||
dds_return_t ddsrt_dlclose(ddsrt_dynlib_t handle) {
|
||||
|
||||
assert ( handle );
|
||||
return (FreeLibrary(handle) == 0) ? DDS_RETCODE_ERROR : DDS_RETCODE_OK;
|
||||
return (FreeLibrary((HMODULE)handle) == 0) ? DDS_RETCODE_ERROR : DDS_RETCODE_OK;
|
||||
}
|
||||
|
||||
dds_retcode_t ddsrt_dlsym(ddsrt_dynlib_t handle, const char *symbol,
|
||||
dds_return_t ddsrt_dlsym(ddsrt_dynlib_t handle, const char *symbol,
|
||||
void **address) {
|
||||
dds_retcode_t retcode = DDS_RETCODE_OK;
|
||||
dds_return_t retcode = DDS_RETCODE_OK;
|
||||
|
||||
assert( handle );
|
||||
assert( address );
|
||||
assert( symbol );
|
||||
|
||||
*address = GetProcAddress(handle, symbol);
|
||||
*address = GetProcAddress((HMODULE)handle, symbol);
|
||||
if ( *address == NULL ) {
|
||||
retcode = DDS_RETCODE_ERROR;
|
||||
}
|
||||
|
@ -73,14 +73,14 @@ dds_retcode_t ddsrt_dlsym(ddsrt_dynlib_t handle, const char *symbol,
|
|||
return retcode;
|
||||
}
|
||||
|
||||
dds_retcode_t ddsrt_dlerror(char *buf, size_t buflen) {
|
||||
dds_return_t ddsrt_dlerror(char *buf, size_t buflen) {
|
||||
|
||||
/* Hopefully (and likely), the last error is
|
||||
* related to a Library action attempt. */
|
||||
DWORD err;
|
||||
assert ( buf );
|
||||
|
||||
dds_retcode_t retcode = DDS_RETCODE_OK;
|
||||
dds_return_t retcode = DDS_RETCODE_OK;
|
||||
|
||||
err = GetLastError();
|
||||
if ( err == 0 ) {
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
#
|
||||
include(CUnit)
|
||||
include(GenerateExportHeader)
|
||||
include(GenerateDummyExportHeader)
|
||||
|
||||
list(APPEND sources
|
||||
|
@ -90,10 +91,7 @@ generate_dummy_export_header(
|
|||
BASE_NAME dds
|
||||
EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/include/dds/export.h")
|
||||
|
||||
generate_dummy_export_header(
|
||||
${test_lib_name}
|
||||
BASE_NAME lib_test
|
||||
EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/lib_test_export.h")
|
||||
generate_export_header(${test_lib_name} BASE_NAME LIB_TEST)
|
||||
|
||||
if(HAVE_MULTI_PROCESS)
|
||||
# A separate application is required to test process management.
|
||||
|
|
|
@ -185,14 +185,3 @@ CU_Test(ddsrt_library, dlclose_error)
|
|||
CU_ASSERT_EQUAL(r, DDS_RETCODE_ERROR);
|
||||
|
||||
}
|
||||
|
||||
CU_Test(ddsrt_library, dlerror_notfound)
|
||||
{
|
||||
char buffer[256];
|
||||
dds_return_t r;
|
||||
ddsrt_dlerror(buffer, sizeof(buffer));
|
||||
r = ddsrt_dlerror(buffer, sizeof(buffer));
|
||||
CU_ASSERT_EQUAL(r, DDS_RETCODE_NOT_FOUND);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue