[求助] 调用VC DLL的问题! 我的情况很特殊啊。
我 要 调 用 VC生 成 的 DLLH中 的 3个 函 数, 但 是函 数 参 数 是 枚 举 类 型 和 和 LPCTSTR类 型 。 我 的 问 题 是1, 用 LabVIEW调 用 这 个DLL的 函 数 时 , 可 选 的 函 数 参 数 没 有 枚 举 类 型 。
2,其 中 一 个 函 数 的 返 回 类 型 是 BOOL型 , LabVIEW中 函 数 返 回 类 型 可 选 项 中 也 没 有 这 一 类 型 。
3, 如 果 用 VC调 用 该 DLL只 需 把 头 文 件 包 括 进 去 就 可 以 了 , 可 是 在 LabVIEW中 作怎 么 把 头 文 件 包 括 进 去 呢 ?
头 文 件和 DLL 在 附 件 里 , 麻 烦 斑 主 和 各 位 大 侠 帮 俺 看 看, 谢 谢 。
[ 本帖最后由 jutlwj 于 2008-7-16 18:48 编辑 ] http://www.cpubbs.com/bbs/viewthread.php?tid=13221&extra=page%3D1
兄弟看看这个第7点!
还有,如果VC的DLL源码您是有的,一些数据类型不好匹配的话,可以重新更改一些函数接口参数,做得比较兼容C的形式,再用LabVIEW调用,会更简单些的! 可以那么认为,一切的高级语言都是从纯c开始的。。
纯c支持的基本数据类型,只有number,character两大类而已。
如果明白上面的第二点,那么,你就可以做一个wrap dll,把原先的dll封装下,就是给它做一个更加合适labview调用的接口,这个是可行的。
当然,如果是简单的一些bool,enum等,可以直接强制转换下,把bool看做是U8,enum看成U16的,应该就可以。
关于dll的话题,你可以去labview搜索call dll这个例子,基本也就会了。 问 题 是 我 没 有 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 中 好 像 没 有 办 法 转 换 啊 。 1、我说的是wrap dll,你自己编写一个,用vc编写,如果不会,那这个方法就算了;
2、你有没去看过call dll这个例子?
3、如果都不行,你把程序传上来,我修改下。。。。
页:
[1]