我正在为Microsoft开发一个使用VSTO的外接程序,并且我有一个托管c++ dll,它包装了一个非托管的c++ dll。我需要部署两个版本的托管c++ dll,一个为64位,另一个为32位。我使用Assembly.LoadFrom(path)加载相应的dll,具体取决于从哪个版本运行的Office。在我的开发机器上,这一切似乎都很好,这是一台运行64位office的64位机器。以下是有关的守则:
try
{
//This will return true so I know the file exists
bo
我读过(在Nish的书C++/CLI In Action和其他地方)中,您应该在函数调用上使用__clrcall装饰器,以避免双线程,如果您知道该方法永远不会从非托管代码中调用。Nish还说,如果方法签名包含任何CLR类型,那么JIT编译器将自动添加__clrcall。我不清楚的是,在创建C++/CLI属性时是否需要包含__clrcall。在某种意义上,属性只能从.NET语言中访问,而C++/CLI编译器(我认为)只生成可以从托管代码和非托管代码调用的方法(例如,***_get() )。那么,我是否需要在我的属性上使用__clrcall修饰符,如果需要,它会去哪里?关于get/set函数本身?