我正在开发带有 C 包装器的 C++ DLL,以便能够在不同的语言上使用它。目前,我也在 C# 中开发一个插件,它调用我的 DLL。
\n\n我想要的是将字符串(文件的路径)作为 DLL 的参数传递,以便能够在我的 DLL 上使用它。
\n\nC#
\n\n[DllImport(DllName, CallingConvention = DllCallingConvention)]\npublic static extern IntPtr AllocateHandle(string filename);\nRun Code Online (Sandbox Code Playgroud)\n\nC 包装纸
\n\nLPVOID SAMPLEDLL_API CALLCONV_API AllocateHandle(char* filename);\nRun Code Online (Sandbox Code Playgroud)\n\nC++ 类构造函数
\n\nCustomData::CustomData(char* filename)\n{\n _filename = filename; // string _filename;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n当我将 _filename 保存在文件上时(因为我没有找到使用 DLL 上的断点进行调试的方法),我有类似\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c\xc3\x8c0\xc3\xa0\xc3\x97. 我尝试了不同的解决方案将 char* 转换为字符串,但结果仍然相同。
预先感谢您的帮助。
\n我正在开发一个项目,必须在Python和C++之间处理图像。为了将图像从 C++ 发送到 Python,我在图像的第一个像素上发送一个指针(作为库Mat中的对象OpenCV),在带有两个 for 循环的 Python 中,我使用该指针创建一个 2D numpy 数组。
但我没有成功地以另一种方式做同样的事情:获取 numpy 2D 数组(图像)的第一个像素的内存地址并将其传递给 C++。
假设 x 是我的图像(2D numpy 数组),我尝试了如下解决方案:
x.__array_interface__['data'][0]但这给出了一个整数,而不是地址x.data每次我调用它时都会给出不同的值,因为它给我的是临时缓冲区的地址,而不是图像本身预先感谢您的任何建议/帮助。
我正在与matplotlib图书馆PyQt5合作Python 3.6.我在我创建的窗口中添加了一个图形,并且我希望将此图形的背景设置为透明,因为我将图像添加到窗口的背景中.但是,这个数字并不是真正透明,它复制了窗口的背景图像.例如,有人在两年前处理同样的问题:
matplotlib和pyqt4透明背景
这是一个工作示例(背景为黑色,但图形不是黑色):
import sys, os
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import matplotlib
matplotlib.use('Qt5Agg') # Make sure that we are using QT5
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
class SecondWindow(QWidget):
def __init__(self, parent=None):
super(SecondWindow, self).__init__(parent)
self.setupUi(self)
def setupUi(self, Form):
# WINDOW SETTINGS
Form.setWindowTitle('Hello')
self.p = QPalette()
self.pixmap = QPixmap(os.getcwd() + "/logo.png").scaled(self.size(), Qt.IgnoreAspectRatio, …Run Code Online (Sandbox Code Playgroud) c++ ×2
arrays ×1
background ×1
c ×1
c# ×1
matplotlib ×1
numpy ×1
pointers ×1
pyqt ×1
python ×1
string ×1
transparent ×1