Tag: visual c ++

什么是C#中的void *?

我正在查看VC ++ 6.00程序的源代码。我需要将此源转换为C#但我无法理解此示例中的(void *)是什么? glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, IMAGE_WIDTH, IMAGE_HEIGHT, 0, PIXEL_FORMAT, GL_UNSIGNED_BYTE, (void*)imageData ); 在此代码中,imagedata是一个指针字节* imageData

使用Visual C ++和R.

我想知道在Visual Studio中的Visual C ++项目中是否有使用R包Rcpp的解决方法。 根据Rcpp常见问题解答,这是不可能的。 我还遇到了另一个名为R.NET的R包。 这只能用于C#但是在Visual C ++中似乎没有示例吗? 我还缺少另一种选择吗? 即使我被迫使用C#,任何人都可以设想在高频交易环境中出现延迟问题吗? 感谢您的任何反馈

不平衡堆栈!

我写了一个VC ++ DLL。 dll中某个方法的声明如下: extern “C” _declspec(dllexport) void startIt(int number) { capture = cvCaptureFromCAM(number); } 我在使用P / Invoke的C#代码中使用此dll。 我将声明作为: [DllImport(“Tracking.dll”, EntryPoint = “startIt”)] public extern static void startIt(int number); 我将代码中的函数调用为: startIt(0); 现在,当遇到这一行时,编译器会抛出这个错误: A call to PInvoke function ‘UsingTracking!UsingTracking.Form1::startIt’ has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged […]

从C#程序的DLL访问方法

我有一个C程序,我已经创建了一个DLL文件。 我使用的是Windows Vista和Visual C ++。 现在我需要从C#代码的Main()方法访问该DLL的方法。 这样做的步骤是什么? 到目前为止,我已添加DLL文件作为参考,此后我该怎么办? 这只是一个例子: int main1( void ) { prinf(“Hello World”); } 请注意,这个类也使我们使用其他.lib函数,但我能够成功地创建一个DLL。 (我不知道这是否相关) 现在我需要从我的C#Main()访问此方法; [STAThread] static void Main() { // I need to call that main1() method here Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }

如何将C#和C ++程序集链接到单个可执行文件中?

我有VS2008解决方案包含一个项目,该项目生成一个C#可执行文件,该项目引用了一个生成包含C ++ / CLI和非托管C ++的DLL的项目。 我想将这些合并到一个可执行文件中,因为C ++ dll包含我想要嵌入主可执行文件的安全代码。 我不能使用ILMerge,因为dll包含托管代码和非托管代码。 建议的解决方案似乎是使用link.exe将C#程序集与C ++目标文件链接起来。 这就是我想要做的。 我手动编辑了c#可执行文件的项目文件以生成netmodule。 我在可执行项目中添加了一个构建后步骤,以运行link.exe将c#netmodule和已编译的C ++目标文件链接在一起,然后运行mt.exe来合并两个项目创建的程序集清单。 这运行成功,但是exe仍然包含对C ++项目的正常构建过程生成的dll中定义的c ++类型的引用和使用。 然后我在C ++ dll的项目设置中指定了/ NOASSEMBLY,因此它还生成了一个netmodule。 在C#项目中,我删除了对C ++项目的引用,但在解决方案中添加了项目依赖项。 我手动编辑了C#项目文件,包含类似于: 即引用现在由C ++项目生成的C ++ netmodule。 但是,现在我的post build事件中的链接器步骤失败了: error LNK2027: unresolved module reference ‘librarycode.netmodule’ fatal error LNK1311: 1 unresolved module references: 这完全可以理解,因为我没有链接到librarycode netmodule; 我正在链接用于生成netmodule的C ++目标文件。 简而言之,如何将ac#executable和C ++目标文件合并到一个程序集中? 我错过了什么? 到目前为止,我的引用源(来自MSDN上的link.exe命令链接引用等)是以下两篇文章: http://blogs.msdn.com/texblog/archive/2007/04/05/linking-native-c-into-c-applications.aspx http://www.hanselman.com/blog/MixingLanguagesInASingleAssemblyInVisualStudioSeamlesslyWithILMergeAndMSBuild.aspx我有一个演示解决方案,显示我的工作到目前为止,如果这有帮助。 非常感谢你提前。 […]

在非托管C ++项目中使用C#COM – > 0x7697C41F的第一次机会exception(KernelBase.dll)

我试图在非托管的Visual C ++解决方案中调用C#COM项目中的方法,但我不断收到下一个错误 First-chance exception at 0x7697C41F (KernelBase.dll) in Program.exe: 0x04242420 (parameters: 0x31415927, 0x6F310000, 0x00BBDAE8). 在下一段代码中 SalesForceNew::IMyObjectClassPtr p; p.CreateInstance(__uuidof(SalesForceNew::TestObject)); // error SalesForceNew::MyObject mo = p->getObject(1, “a”); 然而, mo的值如预期的那样(5,“aa”)。 我用这行代码导入tlb文件: #import “C:\Users\Bob\Desktop\ComTest\SalesForceNew\bin\x86\Debug\SalesForceNew.tlb” named_guids C#项目如下: 界面: using System.Runtime.InteropServices; namespace SalesForceNew { [ComVisible(true)] [Guid(“22901ACD-CA30-4D3E-B84B-73B707026AE5”)] public interface IMyObjectClass { MyObject getObject(int i, string s); } [ComVisible(true)] [StructLayout(LayoutKind.Sequential)] public struct […]

获得CPU频率需要一些帮助

我正在尝试制作一个C#软件,它可以读取有关CPU的信息并将其显示给用户(就像CPU-Z一样)。 我目前的问题是我找不到显示CPU频率的方法。 起初我尝试使用Win32_Processor类的简单方法。 它被certificate非常有效,除非CPU超频(或低频)。 然后,我发现我的注册表在HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0中包含CPU的“标准”时钟(即使超频)。 问题是在现代CPU中,当CPU不需要它的全功率时,核心乘法器正在减少,因此CPU频率也在变化,但是注册表中的值保持不变。 我的下一步是尝试使用RdTSC来实际计算CPU频率。 我使用C ++是因为如果方法正常,我可以将它嵌入到C#项目中。 我在http://www.codeproject.com/Articles/7340/Get-the-Processor-Speed-in-two-simple-ways找到了下一个代码,但问题是一样的:程序只给我最大频率(就像在注册表值中,1-2 Mhz的差异),它看起来像它加载CPU超过它应该(我甚至有CPU负载峰值)。 #include “stdafx.h” #include #include #include “intrin.h” #include #include float ProcSpeedCalc() { #define RdTSC __asm _emit 0x0f __asm _emit 0x31 // variables for the clock-cycles: __int64 cyclesStart = 0, cyclesStop = 0; // variables for […]

如何调用C#DLL的函数来接受来自C#的stringstream类型的参数?

我想导入一个非托管C ++ DLL并调用一个将stringstream作为参数的函数。 在C#中,没有stringstream类,所以有人能告诉我如何从C#程序调用这样的函数吗?

如何在vc ++中使用c#Dll?

我使用命令行(csc)创建了一个dll。 假设dll包含Add(int,int)方法。 现在我想在vc ++中使用add函数? 这该怎么做? 对你的帮助表示感谢。 这就是我在做的事情。 vcproj; 对于这个项目我有右键单击和链接器部分添加其他依赖项。添加dll所在的路径。 main.cpp中 using namespace Test void main() { demo d; d.add(5,5); } 错误命名空间测试不存在。 怎么解决这个? 我需要在非托管代码中使用该DLL

在C ++代码中使用C#dll

我需要在我的C ++代码中集成这个C#dll 。 我想调用一些用C#编写的函数来自dll,其余代码用C ++编写。 什么是最简单,最快捷的方法? 该程序仅在Windows上执行。