草庐IT

native_long

全部标签

C++:将 unsigned long long int 转换为 vector<char> ,反之亦然

谁能告诉我如何将unsignedlonglongint转换为vector,反之亦然。为了将unsignedlonglongint转换为vector,我尝试了以下操作:unsignedlonglongintx;vectorbuf(sizeof(x));memcpy(&buf[0],&x,sizeof(x));当我测试x=1234567890时,它失败了。但是当我尝试使用较小的x值(比如1-100)时,它起作用了……为了将vector转换为unsignedlonglongint,我使用了:unsignedlonglongint=(unsignedlonglongint)buf[0];谁能告

c++ - long double C++的范围是多少

这个问题在这里已经有了答案:longdoublevsdouble(3个答案)关闭9年前。C++中longdouble的取值范围是多少?

c++ - 应该使用哪个函数将字符串转换为 long double?

请注意,一般来说,double不同于longdouble。strtod将string转换为double,但是将string转换为longdouble应该使用哪个函数? 最佳答案 在C++03中,使用boost::lexical_cast,或者:std::stringstreamss(the_string);longdoubleld;if(ss>>ld){//itworked}在C99中,使用strtold。在C89中,使用sscanf和%Lg。在C++11中使用stold。关于每个人接受的格式可能存在细微差别,因此请先检查详细信息.

c# - 从托管包装器重定向 native DLL stdout/stderr

我有一个C#控制台应用程序,它可以P/Invoke到nativeC++dll。dll创建一些非常健谈的线程,并将它们的日志写入标准输出。问题是我的用户交互需要控制台。如何将dllstdout/stderr重定向到null? 最佳答案 我认为,为了完成这项工作,您需要构建一个nativeDLL,该DLL链接到与麻烦的DLL相同的C++运行时。然后您需要使用freopen来重定向标准输出。我的代码来源是这个答案:freopen:revertingbacktooriginalstreamC++代码如下所示:#include__declsp

c# - 如何从托管代码中捕获的 native 异常中获取 native 堆栈跟踪

我有一些托管代码调用一些nativeDLL中的方法(我有适当的符号文件)。有时,该本地方法抛出一个异常,我在托管代码中捕获了该异常。但是,当我从捕获的异常中打印堆栈跟踪时,我只看到托管代码(最后一帧是对native代码的调用......但它看不到native代码中的堆栈跟踪)。如何获取原生调用堆栈?*当我调试代码时,我能够进入native代码,并查看实际的调用堆栈。 最佳答案 获取native堆栈跟踪非常困难。当它通过.NET/native转换层时,native堆栈跟踪已经丢失。所以,你需要在原生代码中捕获它,这也是相当困难的。查看

c++ - 安卓 native NDK OpenGL ES : unimplemented API

我正在努力为Android完全使用C++实现OpenGLES2.0。目前我们的程序运行时没有JNI或项目中的任何java类,而是仅使用NativeActivity。着眼于应用渲染部分本身,我们得到了一个简单的方法:renderWorld(){GLfloatvVertices[]={0.0f,0.5f,0.0f,-0.5f,-0.5f,0.0f,0.5f,-0.5f,0.0f};glClear(GL_COLOR_BUFFER_BIT);glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,0,vVertices);glEnableVertexAttrib

c++ - 从 native 句柄创建 std::thread?

如果我有一个std::thread对象t,我可以使用t.native_handle()来访问API底层线程实现(例如,pthreads或Windows线程)。但是,如果我有一个来自底层线程实现的句柄(例如,一个pthreads线程)怎么办?有什么方法可以将其转换为C++11std::thread?这样做的动机是可能需要使用native平台线程API来设置线程,例如,具有特定的亲和性或特定的堆栈大小(或无法通过C+访问的其他一些特征)+11API)。然而,从那时起,最好坚持使用C++11功能。有什么办法吗? 最佳答案 使用GCC,您可

c++ - 如何使用非常小的库或 native 代码 c/c++ 获取 MP3 文件(CBR 或 VBR)的持续时间?

我不能使用Fraunhofer获得专利的任何mp3代码,因此没有编码器或解码器(例如ffmpeg、lame、MAD等),而且它太大了。我在Windows上执行此操作,但DirectShow的IMediaDet似乎随着时间的推移变慢,调用它几百次使我的系统陷入爬行,甚至重新使用相同的接口(interface)对象并且只是输入文件名并获取持续时间!那么,是否有一些代码可以使用C/C++读取VBR文件并获取持续时间?这里有另一篇文章用C++做CBR,但是代码做了很多假设,当然不适用于VBR。 最佳答案 大多数MP3文件都有一个ID3hea

c++ - unsigned long 的类型不同于 Windows 上的 uint32_t 和 uint64_t (VS2010)

在Windows7、32位的VisualStudio2010上,unsignedlong似乎是与uint32_t和uint64_t截然不同的类型。看下面的测试程序:#include#includetemplatestructis_same_type{staticconstboolvalue=false;};templatestructis_same_type{staticconstboolvalue=true;};#defineTO_STRING(arg)TO_STRING_IMPL(arg)#defineTO_STRING_IMPL(arg)#arg#definePRINT_SAME

c++ - 使用 JNI (C++) 从 native 线程调用 Java 方法时出现问题

我有一个JNI问题,希望有人能帮我解决。我正在尝试从native线程调用名为LUSOutputJNI的Java类的构造函数。它在这个特定类的FindClass(...)上一直失败。代码如下:LOGE("1");JNIEnv*env=NULL;LOGE("2");intres=-1;res=g_vm->AttachCurrentThread(&env,NULL);if(env==NULL){LOGE("envisNULL,AttachCurrentThreadfailed");;}if(res>=0)LOGE("AttachCurrentThreadwassuccessful");jcl