NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

怎样把字符串数组传递给dll

已解决!
转到解答

一个DLL文件里有个函数,要求传递字符串数组指针。

我试过字符串、字符串数组、字节二维数组、匹配到类型等,没有解决。

网上搜过,大多没有办法、或给出字符串(而非字符串数组)解决办法。

有个地方“http://blog.sina.com.cn/s/blog_79bb01d0010169ux.html”明确提到这个问题,但我没有试通。
求一个明确点儿的说法。

0 项奖励
1 条消息(共 11 条)
5,141 次查看
dll中的函数原型:void  abcd(char* efgh); efgh是字符串数组。
0 项奖励
2 条消息(共 11 条)
5,139 次查看

LabVIEW 自带的例子看了吗?

 

George Zou
0 项奖励
3 条消息(共 11 条)
5,101 次查看

看了“Libraries and Executables.lvproj”,没有说到字符串数组。

0 项奖励
4 条消息(共 11 条)
5,082 次查看

LabVIEW 2012 有更多例子.

 

George Zou
0 项奖励
5 条消息(共 11 条)
5,073 次查看

确实没找到。能否明示例子?盼复。

0 项奖励
6 条消息(共 11 条)
5,071 次查看

Untitled.png

 

George Zou
0 项奖励
7 条消息(共 11 条)
5,066 次查看

谢谢回复。

该方法试过,可将字符串传递给dll,但不能传递字符串数组。

只找到一个明确提到传递字符串数组的文章,在一楼的链接里,但该方法不可用。我试着穷举了一下其他方法,未成功。

盼复。

0 项奖励
8 条消息(共 11 条)
5,059 次查看
解答
已被主题作者 dafy 接受

> void  abcd(char* efgh); efgh是字符串数组

2D array of char*.

LabVIEW can NOT handle.

Who create the dll ?

If you can't change the dll, then you have to create a wrapper dll.

i.e. LabVIEW calls your wrapper dll;

your wrapper dll calls the given dll.

 

 

George Zou
9 条消息(共 11 条)
5,054 次查看
解答
已被主题作者 dafy 接受

一楼链接里的方法是可行的.  我用过多次. 前提是: 你能修改 dll.

 

George Zou
10 条消息(共 11 条)
5,044 次查看