Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过Flask中的URL调用函数 我有一个C++ DLL。我想创建一个Flask服务器来调用此DLL中的函数。所以我使用ctypes在Flask中。这是我在视图中的代码。py: from flask import render_template from MusicServer_Flask import app from ctypes import * import os #load Dll: cppdll = CDLL("C:\\VS_projects\\MusicServer_Flask\\NetServerInterface.dll") #wrapping DLL function: initnetwork = getattr(cppdll, "?InitNetwork@@YAHQAD0H@Z") #The function can be accessed successfully initnetwork.argtypes = [c_char_p,c_char_p,c_int] initnetwork.restype = wintypes.BOOL #define route: @app.route('/InitNetwork/<LocalIP>/<ServerIP>/<LocalDeviceID>') def InitNetwork(LocalIP, ServerIP, LocalDeviceID): return initnetwork(LocalIP, ServerIP, LocalDeviceID)_Python_Url_Flask_Dll_Ctypes - Fatal编程技术网

Python 通过Flask中的URL调用函数 我有一个C++ DLL。我想创建一个Flask服务器来调用此DLL中的函数。所以我使用ctypes在Flask中。这是我在视图中的代码。py: from flask import render_template from MusicServer_Flask import app from ctypes import * import os #load Dll: cppdll = CDLL("C:\\VS_projects\\MusicServer_Flask\\NetServerInterface.dll") #wrapping DLL function: initnetwork = getattr(cppdll, "?InitNetwork@@YAHQAD0H@Z") #The function can be accessed successfully initnetwork.argtypes = [c_char_p,c_char_p,c_int] initnetwork.restype = wintypes.BOOL #define route: @app.route('/InitNetwork/<LocalIP>/<ServerIP>/<LocalDeviceID>') def InitNetwork(LocalIP, ServerIP, LocalDeviceID): return initnetwork(LocalIP, ServerIP, LocalDeviceID)

Python 通过Flask中的URL调用函数 我有一个C++ DLL。我想创建一个Flask服务器来调用此DLL中的函数。所以我使用ctypes在Flask中。这是我在视图中的代码。py: from flask import render_template from MusicServer_Flask import app from ctypes import * import os #load Dll: cppdll = CDLL("C:\\VS_projects\\MusicServer_Flask\\NetServerInterface.dll") #wrapping DLL function: initnetwork = getattr(cppdll, "?InitNetwork@@YAHQAD0H@Z") #The function can be accessed successfully initnetwork.argtypes = [c_char_p,c_char_p,c_int] initnetwork.restype = wintypes.BOOL #define route: @app.route('/InitNetwork/<LocalIP>/<ServerIP>/<LocalDeviceID>') def InitNetwork(LocalIP, ServerIP, LocalDeviceID): return initnetwork(LocalIP, ServerIP, LocalDeviceID),python,url,flask,dll,ctypes,Python,Url,Flask,Dll,Ctypes,但是,这两种方法都不是http://172.16.4.218:8081/InitNetwork/172.16.4.218/172.16.4.218/555norhttp://172.16.4.218:8081/InitNetwork/“172.16.4.218”/“172.16.4.218”/555有效。仍然给我错误的类型错误。有人请帮忙吗? < P>我想你会发现烧瓶通过你的字符串(类型STR),而你的C或C++函数期待字节(因此在两个参数之前的‘B’)为前两个参数,第三的int。您有责任将其转

但是,这两种方法都不是
http://172.16.4.218:8081/InitNetwork/172.16.4.218/172.16.4.218/555
nor
http://172.16.4.218:8081/InitNetwork/“172.16.4.218”/“172.16.4.218”/555
有效。仍然给我
错误的类型
错误。有人请帮忙吗?

< P>我想你会发现烧瓶通过你的字符串(类型STR),而你的C或C++函数期待字节(因此在两个参数之前的‘B’)为前两个参数,第三的int。您有责任将其转换。

我同意。但我不知道如何将输入变量转换成字节。你能给我一些提示吗?根据你的建议,我已经更新了我的帖子。但是你仍然没有将最后一个参数从str改为int。结果是我应该返回一个字符串,比如
return str(initnetwork(d_LocalIP,d_ServerIP,DeviceID))
。它给了我正确的结果
@app.route('/InitNetwork/<LocalIP>/<ServerIP>/<LocalDeviceID>')
def InitNetwork(LocalIP, ServerIP, LocalDeviceID):
    b_LocalIP = bytes(LocalIP,'utf-8')
    b_ServerIP = bytes(ServerIP,'utf-8')
    return initnetwork(b_LocalIP, b_ServerIP, LocalDeviceID)