Board logo

标题: LABVIEW调用DLL文件 [打印本页]

作者: chenchao8848    时间: 2006-6-19 10:25     标题: LABVIEW调用DLL文件

dll


各位高手,可否解决本人的一个问题,我欲调用如下DLL 文件,
alll_API int hello (BYTE* lown);
// to active the lown
// lown is a buffer of 3 elements
// change llown[] is [L_DIS, 0, 0]
// alternate lown[] is [0, L_ELE_AL, 0]


如果用字符串数组,而DLL 必须返回的是一个DATA型的数组,这样是行不通的,如果要调用上述DLL 文件,是否必须重新编译DLL,还是用CIN呢 
alll_API ? stdcall?


int hello (BYTE* lown); 
"Call Library Function Node.vi" setting:
1. return type: Numeric | Signed 32-bit Integer
2. arg1 | Numeric | Unsigned 8-bit Integer | ointer to value


LV 输入 1D(或者多维)U8 array,输出为 I32。
> TCHART:
A WCHAR if UNICODE is defined, a CHAR otherwise.
> WCHAR:
16-bit Unicode character.
> CHAR
8-bit Windows (ANSI) character.


★所有的 Windows 数据类型请参考以下链接★:
http://msdn.microsoft.com/librar ;... dows_data_types.asp


EpromW(TCHART Efile[],HWND,hWnd)
"Call Library Function Node.vi" setting:
1. 如果返回类型是 void,return type: void
2. arg1: 直接用 string 试试看
3. arg2: Numeric | Unsigned 32-bit Integer | value


ps: HWND 就是窗口句柄,一般用 DWORD,就是 U32


作者: chenchao8848    时间: 2006-6-19 10:26

调用dll

现使用一块接口卡采集数据,通过调用DLL可以实现对采集卡的状态读取等,函数原型是int _stdcall U***DLLInit(HANDLE instance)图1
而采集数据的函数原型是int _stdcall U***_ReadADOnce(void *Data,int *ReadLen)图2 一运行就退出,不知是不是数据类型的问题但LABVIEW中没有INT的类型,不知如何解决
这个和周立公的一样。第二个是对的。第一个是个缓冲区,你可以用字符串的handlle来
你可以把第二个参数设置为string,Pass为c string Pointer试一试
你说的一运行就自动退出labview的现象以前就讨论过了!
是Calling Convertions没有设对!
可以试着将Calling Convertions改为standcall看看!

作者: owenzlyang    时间: 2008-5-22 22:55

dddddddd




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0