SWIG로 래핑 된 C ++ .dll을 C # 프로젝트에 통합

데이비드 호브 세 피안

VS2019 에는 RLibrary (C ++ 프로젝트 포함)와 VTApp (C # 프로젝트 포함 )의 두 가지 솔루션이 있습니다.

솔루션 RLibrary 에는 RLib C ++ .dll과 SwigW (래퍼 프로젝트)의 두 가지 프로젝트가 있습니다. SwigWRLibCSHARP_wrap.cxx , RLib.cs , RLib.iRLibPINVOKE.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.dllSwigW.dll 이라는 두 개의 .dll (또한 .lib) 파일이 생깁니다 . 내가 사용하려면 new_Create(), new_Request()로부터 기능을 VTApp . VTApp 에는 UICore의 두 가지 프로젝트도 있습니다 . 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.dllCore 프로젝트에 추가 하지 않아도 이런 종류의 컴파일 시간 오류가 발생해서는 안됩니다. 그래서 여기서 문제는 무엇입니까? SwigW.dll추가 해야하는 경우 Core 프로젝트에 제대로 추가 하려면 어떻게 해야합니까? 또한 Core 에도 RLib.dll추가해야 합니까?

Xanatos

시도해보십시오 RLibPINVOKE.new_Create(). 이 메서드는class RLibPINVOKE

class RLibPINVOKE {
//...

당신은 아마도이 필요합니다 using,하지만 비주얼 스튜디오는 당신에게 제안 할 수 있어야한다 RLibPINVOKE.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SWIG : 열거 형을 C #으로 래핑

분류에서Dev

SWIG는 Java에서 C ++ 문자열을 byte []로 래핑합니다.

분류에서Dev

VS2010 C # 프로젝트에서 가장 오래된 DLL을 사용하는 방법

분류에서Dev

SWIG : OO 방식으로 C API 래핑

분류에서Dev

C ++ DLL을 래핑하는 .NET DLL을 동적으로로드

분류에서Dev

VB Windows Form 프로젝트를 C # 프로젝트 창에 래핑

분류에서Dev

Java 개발자가 사용할 수 있도록 UnsatisfiedLinkError SWIG로 C ++ DLL 래핑

분류에서Dev

Python에서 SWIG로 C ++ 클래스 래핑

분류에서Dev

비 C ++ 하위 프로젝트를 CMake 프로젝트에 통합

분류에서Dev

한 C # 프로젝트에서 다른 프로젝트로 클래스를 가져올 때 자동 생성 된 파일을 제외 할 수 있습니까?

분류에서Dev

다른 라이브러리 프로젝트로 구성된 "Visual Studio 2013"에서 통합 C # 라이브러리 프로젝트를 만드는 방법

분류에서Dev

Visual Studio 2015에서 Webrtc를 C ++ 프로젝트에 통합

분류에서Dev

SQL CLR 프로젝트에서 C # 클래스 라이브러리 / 클래스 DLL을 어떻게 추가합니까?

분류에서Dev

C ++. .dll 파일을 프로젝트에 연결

분류에서Dev

MVVM에 따라 C # .NET 프로젝트에 log4net 래퍼 클래스 통합

분류에서Dev

관리되지 않는 C ++ 프로젝트에 종속 된 관리 DLL 추가

분류에서Dev

C # 프로젝트 파일에서 DLL 또는 EXE 이름을 얻으려면 어떻게합니까?

분류에서Dev

Python으로 C ++ DLL을 프로그래밍 방식으로 래핑하는 방법

분류에서Dev

C # 프로젝트에서 SQL을 통해 내부 테이블 참조

분류에서Dev

C # 프로젝트에 dll 추가 및 dll 함수 사용

분류에서Dev

Eclipse에서 Gradle 래핑 된 프로젝트를 여는 방법

분류에서Dev

Objective-C 애플리케이션에 Swift 프로젝트 통합

분류에서Dev

래핑 된 값에서 래퍼로 특정 속성을 '리프트'하려면 어떻게해야합니까?

분류에서Dev

C ++ DirectX DLL을 만들기 위해 어떤 프로젝트 템플릿을 선택해야합니까?

분류에서Dev

두 프로젝트간에 공통 C # 클래스를 공유하지만 프로젝트에서 변경할 수 있도록 허용

분류에서Dev

C ++ 프로젝트에 포함 된 TensorFlow NN

분류에서Dev

C의 캘린더 프로그래밍 프로젝트.이 초보자에게는 너무 복잡합니다.

분류에서Dev

AC # 프로젝트 내에서 C ++ DLL 사용

분류에서Dev

스핑크스 프로젝트에 정의 된 모든 레이블을 어떻게 인쇄합니까?

Related 관련 기사

  1. 1

    SWIG : 열거 형을 C #으로 래핑

  2. 2

    SWIG는 Java에서 C ++ 문자열을 byte []로 래핑합니다.

  3. 3

    VS2010 C # 프로젝트에서 가장 오래된 DLL을 사용하는 방법

  4. 4

    SWIG : OO 방식으로 C API 래핑

  5. 5

    C ++ DLL을 래핑하는 .NET DLL을 동적으로로드

  6. 6

    VB Windows Form 프로젝트를 C # 프로젝트 창에 래핑

  7. 7

    Java 개발자가 사용할 수 있도록 UnsatisfiedLinkError SWIG로 C ++ DLL 래핑

  8. 8

    Python에서 SWIG로 C ++ 클래스 래핑

  9. 9

    비 C ++ 하위 프로젝트를 CMake 프로젝트에 통합

  10. 10

    한 C # 프로젝트에서 다른 프로젝트로 클래스를 가져올 때 자동 생성 된 파일을 제외 할 수 있습니까?

  11. 11

    다른 라이브러리 프로젝트로 구성된 "Visual Studio 2013"에서 통합 C # 라이브러리 프로젝트를 만드는 방법

  12. 12

    Visual Studio 2015에서 Webrtc를 C ++ 프로젝트에 통합

  13. 13

    SQL CLR 프로젝트에서 C # 클래스 라이브러리 / 클래스 DLL을 어떻게 추가합니까?

  14. 14

    C ++. .dll 파일을 프로젝트에 연결

  15. 15

    MVVM에 따라 C # .NET 프로젝트에 log4net 래퍼 클래스 통합

  16. 16

    관리되지 않는 C ++ 프로젝트에 종속 된 관리 DLL 추가

  17. 17

    C # 프로젝트 파일에서 DLL 또는 EXE 이름을 얻으려면 어떻게합니까?

  18. 18

    Python으로 C ++ DLL을 프로그래밍 방식으로 래핑하는 방법

  19. 19

    C # 프로젝트에서 SQL을 통해 내부 테이블 참조

  20. 20

    C # 프로젝트에 dll 추가 및 dll 함수 사용

  21. 21

    Eclipse에서 Gradle 래핑 된 프로젝트를 여는 방법

  22. 22

    Objective-C 애플리케이션에 Swift 프로젝트 통합

  23. 23

    래핑 된 값에서 래퍼로 특정 속성을 '리프트'하려면 어떻게해야합니까?

  24. 24

    C ++ DirectX DLL을 만들기 위해 어떤 프로젝트 템플릿을 선택해야합니까?

  25. 25

    두 프로젝트간에 공통 C # 클래스를 공유하지만 프로젝트에서 변경할 수 있도록 허용

  26. 26

    C ++ 프로젝트에 포함 된 TensorFlow NN

  27. 27

    C의 캘린더 프로그래밍 프로젝트.이 초보자에게는 너무 복잡합니다.

  28. 28

    AC # 프로젝트 내에서 C ++ DLL 사용

  29. 29

    스핑크스 프로젝트에 정의 된 모든 레이블을 어떻게 인쇄합니까?

뜨겁다태그

보관