C #에서 C ++ 제네릭 메서드 호출

이반

다음과 같이 C ++ 64 비트 라이브러리를 만들었습니다.

// UnManagedCLI.h

#pragma once

using namespace System;
using namespace System::Runtime::InteropServices;

namespace UnManagedCLI {

    [DllImport("msvcrt.dll", EntryPoint = "memset", CallingConvention = CallingConvention::Cdecl, SetLastError = false)]
    extern IntPtr MemSet(IntPtr dest, int c, int count);

    //[System::Runtime::CompilerServices::ExtensionAttribute]
    public ref class Unmanaged sealed
    {
    public:
        static void Free(void* unmanagedPointer)
        {
            Marshal::FreeHGlobal(IntPtr(unmanagedPointer));
        }

        generic <typename T> where T : value class
            static IntPtr New(int elementCount)
        {
            return Marshal::AllocHGlobal(sizeof(T) * elementCount);
        }

         generic <typename T> where T : value class
            static IntPtr NewAndInit(int elementCount)
        {
            int sizeInBytes = sizeof(T) * elementCount;
            IntPtr newArrayPtr = Marshal::AllocHGlobal(sizeInBytes);
            MemSet(newArrayPtr, 0 , sizeInBytes);
            return newArrayPtr;
        }

        generic <typename T> where T : value class
            static void* Resize(void* oldPointer, int newElementCount)
        {
            return Marshal::ReAllocHGlobal(IntPtr(oldPointer), 
                IntPtr((int) sizeof(T) * newElementCount)).ToPointer();
        }
    };
}

C #에서 참조로 포함하고 빌드에서 안전하지 않은 코드를 확인한 다음 기본에서 다음을 수행합니다.

using UnManagedCLI;

unsafe class TestWriter
{
    static void Main()
    {
        Unmanaged un;

        //I can't access any of the C++ methods in here?
    }
}

un.C ++ / CLI 라이브러리에서 메소드가 보이지 않는다고 말할 때 ? 잘 빌드되고 실행되지만 C ++에 전혀 액세스 할 수 없습니다.

Sebacote

C +++ / CLI 클래스 (관리되지 않음)의 모든 메서드는 정적입니다. C #에서 Unmanaged.Method 구문을 사용해보십시오 (개체를 만들 필요가 없음).

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #에서 제네릭 메서드 호출

분류에서Dev

C # 제네릭 메서드 선택

분류에서Dev

C # 제네릭 메서드 값

분류에서Dev

동적이 아닌 비 제네릭 부모 인터페이스에서 C # 호출 제네릭 인터페이스 메서드

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

Python C API : C에서 Python C 메서드 호출 문제

분류에서Dev

Windows Phone 8의 C ++에서 C # 메서드 호출 (실제)

분류에서Dev

C # Generic 메서드 만들기는 제네릭 컬렉션을 포함하고 Sum () 호출

분류에서Dev

C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

분류에서Dev

제네릭 메서드 호출

분류에서Dev

다른 제네릭 메서드에서 MaybeNull 제네릭 메서드 호출

분류에서Dev

제네릭이 아닌 메서드에서 제네릭 메서드 호출

분류에서Dev

C # 메서드에서 제네릭 목록 작업

분류에서Dev

제네릭 메서드 C #에서 문자열 역 직렬화

분류에서Dev

C #에서 제네릭 메서드의 값을 얻는 방법

분류에서Dev

제네릭 클래스의 호출 된 메서드와 동일한 T가있는 매개 변수로 C # 제네릭 클래스

분류에서Dev

제네릭 및 비 제네릭 메서드 간의 C # 오버로드 해결

분류에서Dev

C # WWF에서 메서드 호출

분류에서Dev

무인 C ++에서 메서드 호출

분류에서Dev

JavaScript에서 C # 메서드 호출

분류에서Dev

C #에서 동적 메서드 호출

분류에서Dev

C #의 제네릭 클래스가있는 제네릭 메서드

분류에서Dev

C #에서 제네릭 메서드 호출을 위조하면 FakeItEasy로 올바른 개체가 반환되지 않습니다.

분류에서Dev

C #은 "일부"클래스에서 함수를 호출하는 방법을 알고있는 제네릭 메서드를 만듭니다.

분류에서Dev

C ++ 오버로드 제네릭 메서드, 참조 및 값

분류에서Dev

viewmodel에서 제네릭 메서드 호출

분류에서Dev

제네릭 형식에서 정적 메서드 호출

분류에서Dev

C #에서 모호한 메서드 호출을 제거하는 방법

Related 관련 기사

  1. 1

    C #에서 제네릭 메서드 호출

  2. 2

    C # 제네릭 메서드 선택

  3. 3

    C # 제네릭 메서드 값

  4. 4

    동적이 아닌 비 제네릭 부모 인터페이스에서 C # 호출 제네릭 인터페이스 메서드

  5. 5

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  6. 6

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  7. 7

    Python C API : C에서 Python C 메서드 호출 문제

  8. 8

    Windows Phone 8의 C ++에서 C # 메서드 호출 (실제)

  9. 9

    C # Generic 메서드 만들기는 제네릭 컬렉션을 포함하고 Sum () 호출

  10. 10

    C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

  11. 11

    제네릭 메서드 호출

  12. 12

    다른 제네릭 메서드에서 MaybeNull 제네릭 메서드 호출

  13. 13

    제네릭이 아닌 메서드에서 제네릭 메서드 호출

  14. 14

    C # 메서드에서 제네릭 목록 작업

  15. 15

    제네릭 메서드 C #에서 문자열 역 직렬화

  16. 16

    C #에서 제네릭 메서드의 값을 얻는 방법

  17. 17

    제네릭 클래스의 호출 된 메서드와 동일한 T가있는 매개 변수로 C # 제네릭 클래스

  18. 18

    제네릭 및 비 제네릭 메서드 간의 C # 오버로드 해결

  19. 19

    C # WWF에서 메서드 호출

  20. 20

    무인 C ++에서 메서드 호출

  21. 21

    JavaScript에서 C # 메서드 호출

  22. 22

    C #에서 동적 메서드 호출

  23. 23

    C #의 제네릭 클래스가있는 제네릭 메서드

  24. 24

    C #에서 제네릭 메서드 호출을 위조하면 FakeItEasy로 올바른 개체가 반환되지 않습니다.

  25. 25

    C #은 "일부"클래스에서 함수를 호출하는 방법을 알고있는 제네릭 메서드를 만듭니다.

  26. 26

    C ++ 오버로드 제네릭 메서드, 참조 및 값

  27. 27

    viewmodel에서 제네릭 메서드 호출

  28. 28

    제네릭 형식에서 정적 메서드 호출

  29. 29

    C #에서 모호한 메서드 호출을 제거하는 방법

뜨겁다태그

보관