我是C#的C ++ / CLI包装新手,在将数组传递给C#时遇到一些问题。
本地c ++
const double *NDimInversion::GetOutputAverage() const
{
if ( mOutputOk )
return mAvgY.data().begin();
else
throw runtime_error("Error in NDimInversion::GetOutputAverage(): output not available.");
}
本地标题
const double *GetOutputAverage() const;
包装头
public ref class NDimInversion
public:
array<double>^ GetOutputAverage();
包装c ++
array<double>^ NDimInversion::GetOutputAverage() {
array<double> tempArr = nDimInversion->GetOutputAverage(); // ????
const int SIZE = tempArr.size();
array<double>^ tempReturn = gcnew array<double>(SIZE);
for (int i = 0; i < SIZE; i++)
{
tempReturn[i] = tempArr[i];
}
return tempReturn
};
我计划将本机返回值转换为CLI数组,但是无法传递该数组。
你能指出我在想什么吗?
我是否还需要在CLI中输入“ const”关键字?
答案 0 :(得分:-1)
这说明了如何copy between managed and unmanaged arrays。 示例From this question:
import PyPDF2
import os
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
pdf_path=r'path'
os.chdir(pdf_path)
output_pdf=input("Enter for output pdf: ")
#Get PDF list
pdfmerge=[]
for pdf_file in os.listdir(pdf_path):
if pdf_file.endswith('.pdf'):
pdfmerge.append(pdf_file)
pdfWriter = PyPDF2.PdfFileWriter()
#loop through all PDFs
for pdf_file in pdfmerge:
pdfFileObj=open(pdf_file,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
#Save PDF
pdfOutput=open(output_pdf+'.pdf','wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
如评论中所述,您绝对需要知道源数组中的项目数。