VS2019 에는 RLibrary (C ++ 프로젝트 포함)와 VTApp (C # 프로젝트 포함 )의 두 가지 솔루션이 있습니다.
솔루션 RLibrary 에는 RLib C ++ .dll과 SwigW (래퍼 프로젝트)의 두 가지 프로젝트가 있습니다. SwigW 는 RLibCSHARP_wrap.cxx , RLib.cs , RLib.i 및 RLibPINVOKE.cs 파일을 생성했습니다 .
RLibPINVOKE.cs 에는 다음 과 같은 줄이 있습니다.
class RLibPINVOKE {
//...
static RLibPINVOKE() {
}
[global::System.Runtime.InteropServices.DllImport("SwigW", EntryPoint="CSharp_new_Create")]
public static extern global::System.IntPtr new_Create();
[global::System.Runtime.InteropServices.DllImport("SwigW", EntryPoint="CSharp_new_Request")]
public static extern global::System.IntPtr new_Request();
// ...
}
따라서 RLibrary 솔루션 을 빌드 한 후에 는 RLib.dll 및 SwigW.dll 이라는 두 개의 .dll (또한 .lib) 파일이 생깁니다 . 내가 사용하려면 new_Create()
, new_Request()
로부터 기능을 VTApp . VTApp 에는 UI 와 Core의 두 가지 프로젝트도 있습니다 . UI 에는 Core에 대한 참조가 있습니다. 나는 추가 RLibPINVOKE.cs을 받는 파일을 핵심 단지로 프로젝트 를 마우스 오른쪽 클릭 -> 추가 -> 기존 항목 과에서 언급 한 기능 이상 사용하려고 UI의 내 프로젝트 네임 스페이스 UI , 즉,
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
using Core;
using Newtonsoft.Json;
namespace UI {
public partial class MainWindow {
private void Execute_Req(object sender, EREventArgs e)
{
//...
IntPtr p = new_Create();
}
}
}
불행히도 CS01013이 표시됩니다. 'new_Create'라는 이름이 현재 컨텍스트에 없습니다. 오류. 제 생각에는 SwigW.dll 을 Core 프로젝트에 추가 하지 않아도 이런 종류의 컴파일 시간 오류가 발생해서는 안됩니다. 그래서 여기서 문제는 무엇입니까? SwigW.dll 을 추가 해야하는 경우 Core 프로젝트에 제대로 추가 하려면 어떻게 해야합니까? 또한 Core 에도 RLib.dll 을 추가해야 합니까?
시도해보십시오 RLibPINVOKE.new_Create()
. 이 메서드는class RLibPINVOKE
class RLibPINVOKE {
//...
당신은 아마도이 필요합니다 using
,하지만 비주얼 스튜디오는 당신에게 제안 할 수 있어야한다 RLibPINVOKE
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다