托管C++调用DLL中的方法时遇到yield时该如何? [问题点数:40分]

问题描述

假设className,methodName是参数被传入我用下面的代码调用了某个DLL中的方法Assembly^dllAssembly=Assembly::LoadFrom(dllPath);array<System::Type^>^selectType=dllAssembly->GetTypes(className);MethodInfo^selectedMethod=selectType->GetMethod(methodName);System::Object^instance=Activator::CreateInstance(selectType);output=selectedMethod->Invoke(instance,gcnewarray<System::Object^>(1){parmObj});在一般情况下,output是正常的返回结果.但如果返回如下(在Watch中显示):-output0x000000200fa437b0System::Object^-[HPFS::IDS::OrganizationMaster::Processors::RplStatusProcess::<GetFromIds>d__3^]0x000000200fa437b0HPFS::IDS::OrganizationMaster::Processors::RplStatusProcess::<GetFromIds>d__3^可是由于DLL是动态的,存在DLL返回了一个方法,如上返回了RplStatusProcess(),而C++直接接受了这个方法引用作为结果,而没有返回期待的结果。如果用C#的反射调用就不会这样。请问如何解决?----------------------------------------------------------------------------后经通沟得知,被调用方法代码如下:publicIEnumerable<RplStatus>GetRplStatus(IEnumerable<long>otherPartySiteInstanceIds){using(LogManager.Register(MethodBase.GetCurrentMethod()))returnthis.RplStatusProcess.GetFromIds(otherPartySiteInstanceIds);}----------------------------------------------------------------------------经过问题重现研究,是由于this.RplStatusProcess.GetFromIds()这个方法中有yield这个关键词。托管C++用反射调用DLL中的方法时遇到yield时该如何?

解决方案

本帖最后由 qiuhgr 于 2015-03-23 14:09:40 编辑
解决方案二:
也许只是一个很简单的事,只是我不了解该技术:如何从返回的引用指针中得到实际想要的值?

时间: 2024-10-27 20:24:46

托管C++调用DLL中的方法时遇到yield时该如何? [问题点数:40分]的相关文章

iOS重写父类中的方法时要先调用父类中的方法的原因

现有两个类: 1.Object001继承自NSObject #import <Foundation/Foundation.h>   @interface Object001 : NSObject   //Object001的头文件,我只是在这里面声明了个方法 -(void)printfString;   @end   #import "Object001.h"   @implementation Object001   //Object001的实现文件,我实现了声明的pri

js调用Flex中的方法并向flex中传参及flex调用js示例

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra

[急]asp中调用javascript中的方法

问题描述 1.vs2008模板中JScript文件与Javascript是否一样,有没有区别2.如何创建.js文件(怎么在里面写的方法,页面不能调用)functionGetPic(){varm=10;varn=Math.floor(Math.random()*m+1);if(true){document.write("<imgsrc='include/img/top"+n+".gif'/>");}}3.如何调用.js文件中的一个方法...如果我要在一个&

js调用Flex中的方法并向flex中传参及flex调用js示例_Flex

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra

Anroid 求解答代码中如何获取到抽象类的对象,从而调用抽象类中的方法。(急)

问题描述 Anroid 求解答代码中如何获取到抽象类的对象,从而调用抽象类中的方法.(急) public abstract class DataSource { protected static DataSource me; public static DataSource getInstance() { if (me == null) {} try { if (me == null) { //下面这一行代码在Application中是空实现 MyApplication.getInstance(

i-封装一个类库,怎样调用nsobject中的方法创建一个视图并进行跳转

问题描述 封装一个类库,怎样调用nsobject中的方法创建一个视图并进行跳转 如题:我想知道的是在NSObject这个类中的方法该怎么实现?需要用到什么,求具体代码讲解!!!坐等~~~~~~ 解决方案 参考:http://www.2cto.com/kf/201110/108584.html

qt-Qt调用dll中动态链接库中函数

问题描述 Qt调用dll中动态链接库中函数 如题,现在有一个dll文件,我想在Qt程序里调用它,应该怎么实现 解决方案 http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html 解决方案二: http://www.cnblogs.com/newstart/archive/2013/01/23/2873611.html 解决方案三: 在SQL中调用动态链接库中的函数----------------------

我想咨询下如何在UI层界面中调用DAL中的方法

问题描述 我想咨询下如何在UI层界面中调用DAL中的方法,学习3层我想在原开始层ui层调用DAL层中的方法,知道这样做不合理但是不会调用把DAL可以NEW出来但是在使用方法的时候不能使用不知道是什么问题·. 解决方案 解决方案二:不能使用,是神马意思?解决方案三:如果你需要跨层调方法,那你应该定义成静态的..然后添加引用添加using什么的都要加才行..不过不推荐你这样..这样等于你第一层直接和第3层发生关系了解决方案四:那三层架构是必须要层层递进吗,有没有关于三层架构的资料推荐的书籍解决方案五

通过反射找到了已经打开的窗体。怎么调用窗体中的方法,求大神指点。

问题描述 stringwindowsName="注册";IntPtrhandle=NativeMethods.FindWindow(null,windowsName);if(handle!=IntPtr.Zero){Formfrm=(Form)Form.FromHandle(handle);frm.Activate();//frm.Go(user);} 通过反射找到了已经打开的窗体.怎么调用窗体中的方法,求大神指点. 解决方案 解决方案二:我自己顶求关注解决方案三:Invoke解决方案