c#Outlook中的崩溃在c ++库中添加使用功能

时间:2015-02-06 10:41:54

标签: c# c++ outlook

我编写了一个加载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#表单应用程序,它可以工作。那么这里发生了什么?

1 个答案:

答案 0 :(得分:1)

Outlook的位数应该与非托管DLL位数相对应。您无法将x86 dll加载到x64进程中。