原创 LabVIEW调用DLL文件

2008-7-3 22:06 7141 6 6 分类: 测试测量

各位高手,可否解决本人的一个问题,我欲调用如下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  


Re:LabVIEW调用DLL文件


调用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 ointer试一试
你说的一运行就自动退出labview的现象以前就讨论过了!
是Calling Convertions没有设对!
可以试着将Calling Convertions改为standcall看看!


点击看大图


点击看大图


Re:LabVIEW调用DLL文件


两篇代表性的文章
dll和cin的 
affix.gif20065282313861.rar
affix.gif20065282315161.rar
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条