在非托管的世界中,我能够编写__declspec(dllexport),或者使用.DEF文件来公开一个能够调用DLL的函数.(由于在C++中使用__stdcall进行名称修改,我将别名放入.DEF文件中,以便某些应用程序可以重用某些导出的DLL函数.)现在,我感兴趣的是能够从一个单独的入口点函数公开.NET程序集,以非托管方式,但让它在DLL中进入.NET样式的函数.这可能是一种简单而直接的方式吗?
我所拥有的是第三方程序,我通过DLL(插件)扩展,实现了一些复杂的数学.但是,第三方程序无法让我可视化计算.我想以某种方式采用这些预先编写的数学函数,将它们编译成一个单独的DLL(但在.NET中使用C++/CLI),然后在函数中添加钩子,这样我就可以在.NET中渲染一些内容.用户控制.我不确定如何将.NET内容与非托管内容混合,或者谷歌如何完成此任务.
关于托管/非托管网桥的具体建议,或以我所描述的方式完成渲染的替代方法将会有所帮助.谢谢.
如标题中所述,我希望我的旧C++库在托管.NET中运行.我想到了两种可能性:
1)我可能尝试使用/ clr编译库并尝试"It Just Works"方法.
2)我可能会将托管包装器写入非托管库.
首先,我想让我的库快速工作,就像在非托管环境中一样.因此,我不确定第一种方法是否会导致性能大幅下降.但是,实现它似乎更快(不是一个正确的词:-))(假设它对我有用).
另一方面,我想到了编写包装器时可能出现的一些问题(例如,如何包装一些STL集合(vector例如)?)我想写一个与非托管C++驻留在同一个项目中的包装器 - 是合理的方法(例如MyUnmanagedClass,MyManagedClass在同一个项目中,第二个包装另一个)?
你会在那个问题上提出什么建议?哪种解决方案能够让我更好地了解生成的代码?
提前感谢您的任何建议和线索!
干杯
当我运行我的C#应用程序时,Visual Studio报告它已经加载了一个带有(看起来像)随机生成的名称的托管二进制文件.
例如:
'WindowsFormsApplication1.vshost.exe' (Managed): Loaded 'ehmgcsw7'
Run Code Online (Sandbox Code Playgroud)
要么:
'WindowsFormsApplication1.vshost.exe' (Managed): Loaded 'jvo4sksu'
Run Code Online (Sandbox Code Playgroud)
这是什么,为什么它的名字(貌似)是随机生成的?
我最近从原生代码转换为托管代码编程.我正在使用.NET.
由于我已经使用Windbg很长一段时间了,我也想用它来进行托管代码调试.
我的搜索带我进入SOS(罢工之子)扩展,这似乎有一些强大的命令.
即使我理解SOS中使用的大多数命令,我也无法找到正确执行源代码的方法,就像我可以使用本机代码的p和t指令一样.
这使调试体验变得困难,我真的想在调试时逐步调试代码.
我对此进行了一些研究,发现使用6.7.05.0版本的Windbg可以实现这一点,其中MS似乎已经发布了集成的托管调试,但在后续版本中回滚.
尽管如此,我对通过SOS进行调试时能够直播"源"代码非常感兴趣.特别是因为它现在真的阻碍了我的调试体验.
有没有办法实现这个目标?
任何有关如何执行此操作(或实际解决方法)的帮助表示赞赏.
所以,我在Windows 8.1机器上安装了Visual Studio 2013.我想试验它并创建一个新的Windows应用商店网格应用.我想在SQLite数据库上保留数据,显然是WinRT应用程序的首选数据库.
快速找到所需的vsix链接,以便能够使用SDK:SQLite下载页面,并下载sqlite-winrt81-3080002.vsix.
安装它,然后在我的项目中,添加对新安装的SDK的引用(右键单击引用,添加引用,导航到Windows,选择扩展并勾选SQLite for Windows Runtime(Windows 8.1)复选框.
还很快发现它不能在任何CPU上编译.在Configuration Manager上,选择了Debug,x64活动平台,这使我能够编译应用程序.
最后,在尝试使用命名空间时,SQLite我注意到VS 2013没有识别它.尝试了很多东西,例如直接添加对.dll的引用,探索组件以查看哪些命名空间可用(哪些没有显示任何内容),而且我很快就没有想法了.因为它有点新鲜,并且利益有限,谷歌,救世主,今天不想救我.
那么,如何在针对Windows Runtime 8.1的Visual Studio 2013项目中使用SQLite SDK呢?
更新 愚蠢的我,以为在地铁风格的土地上没有管理的土地(.net).很抱歉造成任何混淆.
我发现,将出口库管理代码,非托管,所以你可以使用它的非托管像C/C++语言.但我没有找到任何可以解释它是如何完成的(这是我更感兴趣的)
我正在寻找信息,教程,文章,代码源或任何可以帮助我理解其工作原理的东西
另外,如果您在书签中找到了一些钩子/绕道资源,我也很乐意阅读它们:)
在此先感谢您,祝您度过愉快的一天.
我有一个大项目隐藏另外16个项目(测试,网站和应用程序,如核心,电子邮件等:).我使用C#MVC4作为我的主要网站项目.如果我使用非托管客户端需要我做一个项目文件夹/ bin记录库Oracle.DataAccess.dll,一切正常(我必须在Web.config中设置(更改) - > param:
<connectionStrings>
<add name="PC13" connectionString="User Id=TEST; Password=TEST; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBTEST)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = DBTEST)));" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
并且数据库连接正常,没有ORA例外TNS_NAME).当我只使用像TEST这样的别名时,我必须使用tnsnames.ora将数据源设置为完整路径我收到消息"Exception:ORA-12154:TNS:无法解析指定的连接标识符",但是如果我为别名设置了完整的tns代码 - >一切都很棒.
我使用hibernate.cfg.xml文件:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="command_timeout">60</property>
<property name="cache.provider_class">NHibernate.Caches.SysCache2.SysCacheProvider, NHibernate.Caches.SysCache2</property>
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
<property name="cache.default_expiration">120</property>
</session-factory>
Run Code Online (Sandbox Code Playgroud)
我的Web.config文件(对于托管客户端添加oracle.manageddataaccess.client部分):
<connectionStrings>
<add name="PC13" connectionString="User Id=TEST; Password=TEST; Data Source=DBTEST;" />
</connectionStrings>
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="DBTEST" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBTEST)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = DBTEST)))"/>
</dataSources>
</version>
</oracle.manageddataaccess.client>
Run Code Online (Sandbox Code Playgroud)
我在Visual Studio 2010 SP1 32位(Win …
有哪些选项/方法/软件可用于将JAR文件转换为托管.NET程序集?请在答案中提供所有商业和非商业方法.这些不包括需要在主机上安装Java的解决方案.
嘿,我正在寻找一个完全用C#编写的开源数据库引擎(没有任何原生dll,没有混合模式等等).它应该支持对表(INSERT,UPDATE,SELECT,DELETE和TRUNCATE)和事务的基本操作.不需要SQL支持.
谢谢.
来自PHX Software的 SQLite 将托管程序集(System.Data.SQLite)与非托管DLL(SQLite 32位或64位dll)组合到一个文件中,并设法将它们链接在一起.
我该怎么做呢?我是否需要将托管程序集嵌入到非托管dll中,反之亦然?
即.我的问题是:
我问这个的原因是我想构建一个托管的zLib包装器.我知道在.NET中有托管类,但从经验来看它们有点受限(并且有点愚蠢,因为它们没有做适当的缓冲),所以我想创建自己的副本,也因为我想要学习如何做到这一点.
那么有谁知道我需要做什么以及如何做?
我发现了以下内容:
我将尝试这个,但任何其他可用的信息也会很好.