今天编写一个c++ clr程序调用c# dll,由于不熟,爆出一个错误
An unhandled exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module
c# 类库代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSharpDll0217
{
public class Class1
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name = "Your Name: " + value;
}
}
}
}
c++ clr 控制台程序代码:
// Clr0217.cpp : main project file.
#include "stdafx.h"
#using "D:\\hbj\\test\\test1024\\Debug\\CSharpDll0217.dll"
using namespace CSharpDll0217;
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
Class1 ^c1 = gcnew Class1;
c1->Name = "zzj";
Console::WriteLine(c1->Name);
return 0;
}
然后就报错了:An unhandled exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module
搜索了一下,stackoverflow上说工作路径保持一致,于是修改c# dll项目输出路径:Properties->Build->Outpath,使其与c++生产的exe同一目录
然后c++代码路径也顺便修改:
#using "D:\\hbj\\test\\test1024\\Debug\\CSharpDll0217.dll"
至此问题解决。
参考:http://stackoverflow.com/questions/9729691/an-unhandled-exception-of-type-system-io-filenotfoundexception-occurred-in-unk
http://developer.51cto.com/art/201104/254308.htm
http://blog.csdn.net/benbencoco/article/details/20464533?utm_source=tuicool&utm_medium=referral