jutlwj 发表于 2008-7-15 17:47:14

[求助] 调用VC DLL的问题! 我的情况很特殊啊。

我 要 调 用 VC生 成 的 DLLH中 的 3个 函 数, 但 是函 数 参 数 是 枚 举 类 型 和 和 LPCTSTR类 型 。 我 的 问 题 是
1, 用 LabVIEW调 用 这 个DLL的 函 数 时 , 可 选 的 函 数 参 数 没 有 枚 举 类 型 。
2,其 中 一 个 函 数 的 返 回 类 型 是 BOOL型 , LabVIEW中 函 数 返 回 类 型 可 选 项 中 也 没 有 这 一 类 型 。
3, 如 果 用 VC调 用 该 DLL只 需 把 头 文 件 包 括 进 去 就 可 以 了 , 可 是 在 LabVIEW中 作怎 么 把 头 文 件 包 括 进 去 呢 ?
头 文 件和 DLL 在 附 件 里 , 麻 烦 斑 主 和 各 位 大 侠 帮 俺 看 看, 谢 谢 。

[ 本帖最后由 jutlwj 于 2008-7-16 18:48 编辑 ]

cpubbs 发表于 2008-7-15 22:34:56

http://www.cpubbs.com/bbs/viewthread.php?tid=13221&extra=page%3D1

兄弟看看这个第7点!

还有,如果VC的DLL源码您是有的,一些数据类型不好匹配的话,可以重新更改一些函数接口参数,做得比较兼容C的形式,再用LabVIEW调用,会更简单些的!

飞雨天 发表于 2008-7-16 09:05:47

可以那么认为,一切的高级语言都是从纯c开始的。。
纯c支持的基本数据类型,只有number,character两大类而已。

如果明白上面的第二点,那么,你就可以做一个wrap dll,把原先的dll封装下,就是给它做一个更加合适labview调用的接口,这个是可行的。

当然,如果是简单的一些bool,enum等,可以直接强制转换下,把bool看做是U8,enum看成U16的,应该就可以。

关于dll的话题,你可以去labview搜索call dll这个例子,基本也就会了。

jutlwj 发表于 2008-7-16 18:45:36

问 题 是 我 没 有 DLL源 文 件 , 只 有 一 个 DLL和 头 文 件 , 所 以 我 不 能 对 该 DLL进 行 任 何 更 改 或 编 辑 。 我 现 在 调 用 DTCLog 函 数 , 把 返 回 类 型 设 定 为 Unsigned 8-bit Integer(对 应 VC++ 的 BOOL), 把 函 数 参 数 设 为 C String Ponter(对 应 LPCTSTR), 结 果 提 示 我 "由 于 应 用 程 序 配 置 不 正 确 , 应 用 程 序 未 能 启 动 ".是 不 是 必 须在 VC源 程 序 中 先 把 BOOL型 返 回 值强 制 转 换 为 Unsigned 8-bit Interger?在 LV的 Call Liabray Function Node 中 好 像 没 有 办 法 转 换 啊 。

飞雨天 发表于 2008-7-17 09:30:15

1、我说的是wrap dll,你自己编写一个,用vc编写,如果不会,那这个方法就算了;
2、你有没去看过call dll这个例子?
3、如果都不行,你把程序传上来,我修改下。。。。
页: [1]
查看完整版本: [求助] 调用VC DLL的问题! 我的情况很特殊啊。