我从这里开始提出问题,但意识到可能需要在Labview论坛上回答。
所以,我有一个在Labview中创建的DLL,我通过Python 3.3.3访问它。我知道我正在正确访问它,因为我已经能够访问其中的几个功能。但是,当我尝试将路径传递给我遇到问题的文件时,我遇到了问题。
以下是.h文件中的函数调用详细信息,它是在创建DLL时创建的:
/*!
* ClockInit
*/
int32_t __cdecl ClockInit(uint32_t HandleIn, char fileUseDialog[]);
以下是我用来调用函数的Python代码段:
import os, sys, time
from ctypes import *
ftdi=cdll.LoadLibrary('C:\\Python33\\DLLs\\Savlo16FF_DLL_old\\Salvo16FF DLL\\Salvo16FF.dll')
FPGA_DeviceHandle=c_ulong(0)
Status=ftdi.FPGAInit(byref(FPGA_DeviceHandle))
path="C:/Python33/Scripts/RegisterMap_100M_1p8HCSL.txt"
ftdi.ClockInit(FPGA_DeviceHandle,path)
以下是我从Labview回来的错误:
http://i.stack.imgur.com/PTz61.png
我能说的最好的是我没有正确地将路径传递给函数。我尝试了很多不同的变化(将'/'更改为'\',尝试使用create_string_buffer),但无济于事。
提前感谢您的帮助!
答案 0 :(得分:0)
斜杠在路径变量中以另一种方式评估为“非路径”,正如上面正确指出的那样,python3需要使用“b”前缀。