- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将使用可视化工具包 (VTK) 库创建的场景嵌入到 VisualC++ 2012 创建的 Windows 窗体中,以便我可以设计我的 Windows native GUI 界面。
我想强调的是,所有带有控制台应用程序的示例都是使用 (Cmake) 配置的,使用 VC++2012 编译的,并且按照官方 VTK wiki 页面的说明完美运行。
问题是,如果我尝试在 Win Form 应用程序中调用那些 VTK 函数和类初始化,我会得到 错误 LNK1107:无效或损坏的文件:无法在 0x2E0 D:\.....\VTK_61_BUILD_VS2012\bin\Debug\vtkViewsCore-6.1.dll
即使我按预期正常添加所有内容,也包括 header 和外部库依赖项。
这让我觉得我源自错误的 Visual C++ 2012 项目模板或明显我完全缺失的东西,否则编译器会出现许多未找到的文件或语法错误。
这是我尝试调用 VTK 库的第一行,即使智能感知也建议 vtk..... 命名为 proc、函数和结构,但应用程序无法编译。
#pragma once
#include <vtkSmartPointer.h>
#include <vtkTriangle.h>
#include <vtkCellArray.h>
#include <vtkPolyData.h>
#include <vtkRenderWindow.h>
namespace CLR_Project1 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
...
...
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
这里有什么问题?
最佳答案
当我遇到同样的问题时,以下链接(特别是bnsteel先生的回答)对我帮助很大 ==>
http://vtk.1045678.n5.nabble.com/VTK-and-Winforms-integration-td5721086.html
您可以按照链接下的建议使用 Swig。但没有必要。使用类似的方式(传递 Windows 窗体面板句柄),您可以按照 jalal sadeghi 的建议创建 C++/CLI 包装器。您将通过包装器将面板句柄传递给执行所有“VTK 工作”的 C++ 库。这样您就不必为所有 VTK 类创建单独的包装器,所有“VTK 工作”和对 VTK 的依赖项都隐藏在您的 C++ 层中。
像这样==>
C++ 方面
setImageRenderWindowParentID(void *theID){
... (init your vtk render window)
renWin->SetParentId(theID);
}
C++/CLI 端
void setRenderWindowParentID(IntPtr parentID, .. also pass the panel size .. ){
void* p = parentID.ToPointer();
myCPPVTK->setRenderWindowParentID(p, .. also pass the panel size ..);
}
C# 端
VTKWrapper.setRenderWindowParentID(m_panel.Handle, .. also pass the panel size ..);
关于c++ - 如何在 Windows 窗体项目中创建 VTK 项目 (VisualC++ 2012),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24161640/
我在 visualstudio2010 上使用 opencv2.1 调试时显示此错误消息: '程序无法启动,因为您的计算机缺少 cxcore210.dll。尝试重新安装程序以修复此程序。' 但 cxc
1 问题描述 1.1 内存泄漏的困扰和解决之道 在C/C++程序开发过程中,开发者受益于C/C++的强大,与此同时也承受着C/C++程序开发的额外风险。像Java、C#这类带GC(内存垃圾回收)的
我的目标是检查 Sheet1 中的每一行,以便发现有多少行,所以我放了一个 do\while,一旦它到达一个空白单元格就应该停止 例子: row1 data row2 data row3 data r
我正在尝试使用 VC2010 项目引用,它替代了旧的“项目依赖项”对话框。然而,我缺少的是一种让引用项目继承被引用项目的包含和库路径的方法。现在,我必须手动复制我在引用项目中设置的任何额外路径。 有什
我正在尝试编写一个 C++ DLL,它使用 openSSL 来保护与服务器的连接。 我真的很困惑这个代码 #include "stdafx.h" #include #include //SSL s
顺便说一句,我是 Visual C# 的新手。 我已经有了要上传的.txt文件,但是在我熟悉Visual C#之后,我的最终目标是上传一个.txt文件到内存中,读取它,解析它上面的数据字符串的某些部分
此站点上有几个问题询问是否可以使用 volatile 变量进行原子/多线程访问:参见 here , here , or here例如。 现在,符合 C(++) 标准的答案显然是否。 但是,在 Wind
我正在尝试设置 VC++ 以编译具有 OpenGL 4.1 功能的代码。我从 opengl.org 下载了 3 个头文件;将它们放在正确的路径中并包含它们 - 但不断出现这样的错误: error C3
struct mystruct { using this_class = mystruct; /* old typedef such as: typedef
我想将应用程序的插件编译为动态库。通常,插件是用 VisualC++ 编译的,但我想使用 G++。 SDK 文档明确指出 The compiler options for Pointer-to-mem
我使用的是 Windows 8 64 位和 Visual C++ 2012 Express。我偶然发现使用 WDK 8 的程序只能使用专业及以上版本构建。现在还是这样吗?无论如何,我真的很想学习它,所
我正在尝试将使用可视化工具包 (VTK) 库创建的场景嵌入到 VisualC++ 2012 创建的 Windows 窗体中,以便我可以设计我的 Windows native GUI 界面。 我想强调的
我是 Linux 的长期用户和“高级”Python 程序员。我最近在周末有一些空闲时间,我开始学习 C++。 我正在使用 Qt Creator 进行开发,因为它具有很好的功能,而且简单、快速,我还计划
我在添加一个带有 node_modules 文件夹的项目后尝试编译我的 ASP.NET MVC 项目,它给了我以下错误: The CodeDom provider type "Microsoft.Vi
我正在构建服务器中构建/打包 Web 应用程序,但失败并显示以下消息: ASPNETCOMPILER error ASPCONFIG: The CodeDom provider type "Micro
我必须就我们是否应该花额外的钱购买配备 Intel i7 CPU(i7 950s)的新计算机,或者我们是否应该购买 Intel Core 2 Quad 处理器(Q9550s 或同等产品)向管理层提出建
我是一名优秀的程序员,十分优秀!