‎08-08-2008 09:43 AM
#include
<windows.h>HINSTANCE h = 0;
// die call library node konfigurerst du so:
// int32 myDLLload(const char* lib)
// lib ist ein Labview-String, den du als const char* übergibst!
extern
"C" __declspec(dllexport) int myDLLload(LPCWSTR lib){
if(h == 0){
h = LoadLibrary(lib);
return 0; // ok}
return 1; // error}
// auch hier übergibst du füp proc einen LV-String als char*!
// addr übergibst du als pointer auf int32
extern
"C" __declspec(dllexport) int myDLLgetprocaddr(const char* proc, int* addr, DWORD* err){
if(h != 0){
*addr = (
int)GetProcAddress(h, proc); return *addr == 0; // ok}
*err = GetLastError();
return 1; // error}
extern "C" __declspec(dllexport) void myDLLFree()
{
FreeLibrary(h);
h = 0;
}
/code
i passed the parameters for the loadlibary (lib) and getproc... (proc) as a c-string, but it doesnot work. i am not good in writing dlls at all (fortunately there are a lot of nice people in some forums that help a lot 🙂 ) and i just dont know why that doesnot work.
anyone has a clue?
thanx
martin
‎08-11-2008 04:10 AM
‎08-12-2008
09:17 AM
- last edited on
‎07-18-2025
06:02 PM
by
Content Cleaner
Hi Martin,
what exactly are you trying to accomplish? Calling a LabVIEW dll from VC++?
This website explains a bit on adding the LabVIEW memory manager functionality. The best way would be to link against the labview.lib library file, as mentioned on the website. This library will provide the necessary methods for using all LabVIEW data types such as LStr, etc. There is a manual to be found here that explains the best approaches.
Maybe you can explain in more detail what your goal is, so we can find the most efficient solution.
Thanks and best regards,
Peter