dllsampleexplicit.cpp
来自「BCAM 1394 Driver」· C++ 代码 · 共 82 行
CPP
82 行
//-----------------------------------------------------------------------------
// (c) 2002 by Basler Vision Technologies
// Section: Vision Components
// Project: BCAM
// $Header: DllSampleExplicit.cpp, 2, 07.01.2003 16:58:22, Happe, A.$
//-----------------------------------------------------------------------------
/**
\file DllSampleExplicit.cpp
\brief Console application using the BcamApiSampleDll (explicit linkage)
This console application demonstrates explicit linking against a dynamic library using the Bcam high level interface.
Before unloading the dll, the clean up code provided by the BcamApi will be processed by calling the dll's
PrepareUnloadProc() function.
In general it is highly recommended to invoke the CBcam::CleanUp() method before unloading
a dll using the Bcam API.
*/
#include "stdafx.h"
#include "BcamApiSampleDll.h"
#ifdef _DEBUG
#define LIBNAME "..\\..\\lib\\BcamApiSampleDlld.dll"
#else
#define LIBNAME "..\\..\\lib\\BcamApiSampleDll.dll"
#endif
int _tmain(int argc, _TCHAR* argv[])
{
typedef void (*TestProc)();
typedef BOOL (*PrepareUnloadProc)();
HMODULE hInst; // handle to the library
// load the dll
hInst = LoadLibrary(LIBNAME);
if ( hInst != NULL )
{
// get pointer to the exported functions
TestProc Test = ( TestProc) GetProcAddress(hInst, "Test");
if ( Test == NULL )
{
fprintf(stderr, "Could not retrieve pointer to exported function Test()");
}
else
{
// call the Test() function
Test();
}
PrepareUnloadProc PrepareUnload = (PrepareUnloadProc) GetProcAddress(hInst, "PrepareUnload");
if ( PrepareUnload == NULL )
{
fprintf(stderr, "Could not retrieve pointer to exported function PrepareUnload()");
}
else
{
// Before unloading the dll do the clean up
BOOL res = PrepareUnload();
if ( ! res )
{
fprintf(stderr, "Call to PrepareUnloadProc() failed. GetLastError() = %d\n", GetLastError());
}
}
// Now unload the dll
if ( ! FreeLibrary(hInst) )
{
fprintf(stderr, "Unloading dll failed. GetLastError() = %d\n", GetLastError());
}
}
else
{
fprintf(stderr, "Cannot load library %s\n", LIBNAME);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?