我有一个非常基本的非托管C ++项目,C ++ / CLI包装器和C#GUI。我已经将所有3个项目都构建为x64。我尝试运行C#项目,我得到以下异常:
TestAppGUI.exe中0x000007fefd84cacd的第一次机会异常: Microsoft C ++异常:内存中的EEFileLoadException * __ptr64 位置0x0057b498。
有谁知道导致这个问题的原因是什么?
这些是我的课程:
Test.h(非托管代码)
#define DllExport __declspec( dllexport )
#include <iostream>
namespace Test
{
class DllExport BasicTest
{
public:
BasicTest();
~BasicTest();
};
}
Test.cpp的
#include "Test.h"
Test::BasicTest::BasicTest()
{
}
Test::BasicTest::~BasicTest()
{
}
TestCLR.h(包装器)
// TestCLR.h
#pragma once
#include "../TestApp/Test.h"
using namespace System;
using namespace Test;
namespace TestCLR {
public ref class Class1
{
// TODO: Add your methods for this class here.
public:
Class1();
private:
BasicTest *bsTest;
};
}
TestCLR.cpp
// This is the main DLL file.
#include "stdafx.h"
#include "TestCLR.h"
TestCLR::Class1::Class1()
{
bsTest = new BasicTest();
}
TestAppGUI Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TestCLR;
namespace TestAppGUI
{
public partial class Form1 : Form
{
Class1 obj = new Class1();
public Form1()
{
InitializeComponent();
}
}
}