【c# – 使用C将托管事件公开给COM】教程文章相关的互联网学习教程文章

c#-从自托管的WEB API控制台应用返回jsonp【代码】

我使用了此博客文章中描述的jsonp格式化程序:http://www.west-wind.com/weblog/posts/2012/Apr/02/Creating-a-JSONP-Formatter-for-ASPNET-Web-API 有人尝试过将格式化程序与自托管控制台应用程序一起使用吗? 我已经在常规的MVC 4项目中尝试过格式化程序,并且该格式程序立即可用.但是,我想在自托管的控制台应用程序中使用它,而使其工作起来却遇到了很多麻烦. 我已经注册了格式化程序,并确认已添加该格式化程序:var config = new...

将结构传递给非托管代码时C#-System.AccessViolationException【代码】

我正在尝试使用来自C#的非托管API,并将头撞墙. (关于PInvoke,我是个初学者.) 头文件的相关部分如下所示:#define CTAPICALL __stdcall #ifdef __cplusplusextern "C" { #endifextern BOOL CTAPICALL ctTagReadEx(HANDLE,LPCSTR,LPSTR,DWORD,CT_TAGVALUE_ITEMS*); /* read extended data from tag */#ifdef __cplusplus } #endifCT_TAGVALUE_ITEMS如下所示:typedef struct {DWORD dwL...

C#-降低Monotouch中本机<->托管交互的成本【代码】

我正在玩一个本机库,我为该库编写了monotouch(我们现在应该将其命名为Xamarin.iOS?)绑定. 即使函数的核心不执行任何操作或返回base.X(),覆盖C#中的某些常用方法仍会严重降低性能.仪器确认问题以及在管理的本地交互中花费的时间. 有没有办法从一侧或另一侧(本机或受控)加快速度?还是在MT中进行P / Invoking时要缴纳的税款? 我碰到的玻璃天花板大约是50000个呼叫/秒. [2013/02/22更新]为了给出一些背景或示例,这是我正在做的事情....

c#-验证视图状态MAC失败.由Web场托管的应用程序,请确保配置【代码】

这个问题已经在这里有了答案: > Asp.net Validation of viewstate MAC failed 13个净4.0框架,我已经在这个框架上做了很多网站,但从未收到这样的错误"Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate ...

c#-使用HwndHost在WPF中托管外部窗口的正确方法【代码】

我想在WPF应用程序中托管一个外部进程的窗口.我像这样派生HwndHost:class HwndHostEx : HwndHost{[DllImport("user32.dll")]static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);private IntPtr ChildHandle = IntPtr.Zero;public HwndHostEx(IntPtr handle){this.ChildHandle = handle;}protected override System.Runtime.InteropServices.HandleRef BuildWindowCore(System.Runtime.InteropServices.Hand...

c#-在Mongo中使ASP.NET身份存储用户数据(托管在Heroku上)

我目前正在开发一个使用Mongo作为后端的ASP.Net Web应用程序.我已经看到其他人尝试此操作,并更改了Web.config中的连接字符串以指向Heroku上的Mongo实例.我的连接字符串格式如下:mongodb://username:password@server.mlab.com:port/database创建具有选定单个帐户的新ASP.Net MVC项目后构建的控制器和模型尚未编辑.我无法创建新帐户或无法使用通过Mongo创建的帐户登录.我还收到以下错误:Format of the initialization string does ...

C#-无法将ASP MVC应用程序部署到普通共享托管提供商

我从fasthosts.co.uk购买了Windows Developer托管程序包,我相信这是一个沼泽标准共享托管程序包.它具有ASP.NET 3.5,并且根据其支持,还安装了SP1. 我已经使用ASP MVC 2预览版1开发了我的网络应用程序(顺便说一句,它真棒,我很希望能进入预览版2),并且在我的开发机上运行正常,该机器上通过安装程序包. 由于服务器未安装MVC,因此我按照Phil Haacks bin deployment method不会接缝,因为发生了以下情况… 当我部署它并将文件复制到服务器...

跨C/C++(非托管)和托管C#代码共享通用定义

我有一组由C#托管组件和非托管C/C++组件使用的结构定义.现在,相同的结构定义分别存在于C/C++和C#代码中-导致重复和相关的混乱.维护可以在C#和C/C++中使用的单个定义的最佳方法是什么?谢谢!阿米特 附注:我是一名C/C++人士,因此,如果有一种明显的方法可以做到,那么我可能会完全想不到!解决方法:显然,我不熟悉您的项目,但是您是否考虑过在C++/CLI中为您的库构建托管桥?借助“ It Just Works”,C/C++LI编译器可以为您完成黑客攻击...

在非托管C程序中实现C#DLL COM文件【代码】

这是我提出的另一个参考问题:How to call managed C++ methods from Un-managed C++ 我已经成功创建了一个C#COM文件.现在,我需要一个简单的解释,说明如何在非托管C中实现它. 我正在关注此示例,但是c部分很薄弱.http://www.codeproject.com/Articles/7859/Building-COM-Objects-in-C 这是我的COM文件using System; using System.Runtime.InteropServices; using System.Collections.Generic; using System.Linq; using System.Text...

如何将字符串参数从C传递到托管的C#DLL【代码】

我正在编写一个C程序,该程序需要调用用C#编写的DLL.我按照以下说明创建C#DLL并从C链接到它. https://support.microsoft.com/en-us/kb/828736 我有一个将字符串作为参数的C#函数.如何将字符串从C传递到C#中?解决方法:我找不到这个问题的简明答案,因此我将我的解决方案放在这里,希望对将来的人有所帮助. TL; DR:您需要使用BSTR在C#和C之间来回传递字符串. 这是我的方法. C#代码 这是我的C#代码的示例.注意事项: >您想从C调用的任何...

C#-将非托管字符**编组为托管字符串[]【代码】

我在DLL文件中有一个C函数(它是使用“多字节字符集”选项编译的):_declspec(dllexport) void TestArray(char** OutBuff,int Count,int MaxLength) {for(int i=0;i<Count;i++){char buff[25];_itoa(i,buff,10);strncpy(OutBuff[i],buff,MaxLength);} }我想接下来必须是C#原型:[DllImport("StringsScetch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]private static extern void TestArray([Mars...

c# – 使用C将托管事件公开给COM【代码】

可以将使用C语言编写的托管事件公开,并在使用c编写的COM对象中使用.不熟悉com和atl.你能否展示一下MSDN文章中显示的示例C方面会是什么样子? http://msdn.microsoft.com/en-us/library/dd8bf0x3.aspx 显示的VB6代码证明它是可行的.解决方法:在C语言中,最简单的方法是在ATL的IDispEventImpl和IDispEventSimpleImpl模板的帮助下实现事件接收器.示例项目can be found here的说明. 有许多关于如何执行此操作的在线资源,例如this或this,...

c# – 从非托管代码调用托管.NET代码的最佳方法【代码】

我正在尝试找到从非托管C代码调用托管.NET代码的最佳性能方法.我在我的C应用程序中找到了有关Hosting .NET的信息,我可以创建一个pRuntimeHost并启动它而不会出现问题. ExecuteInDefaultAppDomain似乎非常有限,因为我真的想发送一些参数并让它返回一个信息结构.最明显的替代方法是使用COM方法,但当前的C#代码并未真正设置为与方法的接口. 无论哪种方式,我想返回整数,字符串(char *)s,双精度和其他核心C类型.双方都有太多代码将C转换...

如何使用st#:: vector作为C#参数调用非托管C函数?【代码】

出于性能原因,我有一个C#前端和一个C后端.现在我想调用一个C函数,例如:void findNeighbors(Point p, std::vector<Point> &neighbors, double maxDist);我想要的是一个C#包装函数,如:List<Point> FindNeigbors(Point p, double maxDist);我可以将像Point []这样的平面数组传递给非托管C dll,但问题是,我不知道要分配多少内存,因为我不知道函数将返回的元素数量… 是否有一种优雅的方式来处理这个没有内存泄漏的麻烦? 谢谢你的帮助...

将矢量/数组从非托管C传递到C#【代码】

我想从非托管C传递大约100 – 10,000点到C#. C面看起来像这样:__declspec(dllexport) void detect_targets( char * , int , /* More arguments */ ) {std::vector<double> id_x_y_z;// Now what's the best way to pass this vector to C# }现在我的C#端看起来像这样:using System; using System.Runtime.InteropServices;class HelloCpp {[DllImport("detector.dll")]public static unsafe extern void detect_targets( stri...