我编写了一个加载c ++库的outlook插件,插件可以看到库中的函数,但是在使用时,它会崩溃。
这是我的c ++库代码:
// TestDLL.h
#pragma once
using namespace System;
namespace TestDLL {
public ref class MyClass
{
public:
int Add(int a, int b);
};
}
// TestDLL.cpp
#include "stdafx.h"
#include "TestDLL.h"
namespace TestDLL {
int MyClass::Add(int a, int b)
{
return a + b;
}
}
这是我的插件代码:
using TestDLL;
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Thread t = new Thread(new ThreadStart(Test));
t.Start();
}
private void Test()
{
MyClass myClass = new MyClass();
int res = myClass.Add(12, 25);
MessageBox.Show("res:" + res);
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
}
如果我尝试使用c#表单应用程序,它可以工作。那么这里发生了什么?
答案 0 :(得分:1)
Outlook的位数应该与非托管DLL位数相对应。您无法将x86 dll加载到x64进程中。