我是Microsoft Visual Studio用户。 我的问题是关于“C / C ++运行时库”。 我创build了一个带有“.cpp”源文件“main.cpp”的“Empty Project”,其中包含以下代码: #include <iostream> int main(void) { std::cout << "Hello World" << std::endl; return 0; } “iostream是一个用于C ++编程语言的input/输出的头文件,它是C ++标准库的一部分。 “C / C ++运行时库”和“C / C ++标准库”有什么不同? 如何知道“C / C ++运行时库”库是静态还是dynamic链接到项目? 我怎么知道这个库在文件系统中的位置? 如果“C / C ++运行时库”dynamic链接到项目中,怎样才能知道使用了哪个“.dll”以及文件系统中使用的“.dll”的位置? 假设我将“C / C ++运行时库”静态链接到项目,我可以确定从源代码生成的可执行文件可以在所有的Windows平台(XP / Vista / Seven / …,32位/ 64位)? 将“C / […]
假设有一个指针,我们用NULL初始化它。 int* ptr = NULL; *ptr = 10; 现在,程序会崩溃,因为ptr没有指向任何地址,我们正在给它赋值,这是一个无效的访问。 所以,问题是,在操作系统内部发生了什么? 页面错误/分段错误是否发生? 内核甚至会在页面表中search? 或者之前发生了崩溃? 我知道我不会在任何程序中做这样的事情,但这只是为了知道在这种情况下在操作系统或编译器内部发生了什么。 这不是一个重复的问题。
我想知道常量variables的存储位置。 在与全局variables相同的内存区域? 或在堆栈上?
我的应用程序通过ThreadPool.QueueUserWorkItem产生不同的小工作者线程的负载,我通过多个ManualResetEvent实例跟踪。 我使用WaitHandle.WaitAll方法阻止我的应用程序closures,直到这些线程完成。 我从来没有任何问题,但是,因为我的应用程序正在更多的负载,即更多的线程被创build,我现在开始得到这个exception: WaitHandles must be less than or equal to 64 – missing documentation 什么是最好的替代解决scheme呢? 代码片段 List<AutoResetEvent> events = new List<AutoResetEvent>(); // multiple instances of… var evt = new AutoResetEvent(false); events.Add(evt); ThreadPool.QueueUserWorkItem(delegate { // do work evt.Set(); }); … WaitHandle.WaitAll(events.ToArray()); 解决方法 int threadCount = 0; ManualResetEvent finished = new ManualResetEvent(false); … Interlocked.Increment(ref threadCount); ThreadPool.QueueUserWorkItem(delegate […]
我正在寻找与sha256使用openssl和C ++创build一个哈希。 我知道这里有一个类似的post: 使用OpenSSL库在C ++中生成SHA哈希 ,但我正在寻找专门创buildsha256。 更新: 似乎是包含path的问题。 即使包括我也找不到任何openssl函数 #include "openssl/sha.h" 我在我的构build中包含了path -I/opt/ssl/include/ -L/opt/ssl/lib/ -lcrypto
我做了一个小的C#应用程序来创build一个JPG格式的图像。 pictureBox.Image.Save(name,ImageFormat.Jpeg); 该图像是成功创build的。 我input一个原始图片,做一些东西,并保存它。 然而,这个新的图片质量比原来的要低。 有没有什么办法来设定所需的质量?
当使用std::bind绑定一个成员函数时,第一个参数是这个对象的this指针。 然而,它将作为指针传递给对象,而不是。 请参阅以下程序: #include <iostream> #include <functional> struct foo { void bar(int v) { std::cout << "foo::bar – " << v << '\n'; } }; int main() { foo my_foo; auto f1 = std::bind(&foo::bar, my_foo, 1); auto f2 = std::bind(&foo::bar, &my_foo, 2); f1(); f2(); } 铛和海湾合作委员会编译这没有抱怨,结果适用于两个绑定: foo :: bar – 1 foo :: bar – […]
我目前正在重构/整理C ++项目中使用的一些旧C代码,并定期查看以下函数: int f(void) 我倾向于这样写: int f() 为了提高一致性,是否有任何理由不在整个代码库中用()replace(void),还是两者之间有细微的差别,我不知道? 更具体地说,如果C ++中的虚拟成员函数被描述为: virtual int f(void) 而派生类包含一个成员函数: int f() 这是一个有效的覆盖? 此外,我可能会遇到基于几乎相同的签名的任何链接器问题?
我有两个列表列表,我需要合并和删除两个列表的重复值 有点难以解释,所以让我展示一下代码的样子,以及我想要的样例,我使用inttypes而不是ResultAnalysisFileSql类。 first_list = [1,12,12,5] second_list = [12,5,7,9,1] 结合这两个列表的结果应该导致这个列表:results_list = [1,12,5,7,9] 你会注意到结果有第一个列表,包括它的两个“12”值,在second_list中有另外的12,1和5的值。 ResultAnalysisFileSql类 [Serializable] public partial class ResultAnalysisFileSql { public string FileSql { get; set; } public string PathFileSql { get; set; } public List<ErrorAnalysisSql> Errors { get; set; } public List<WarningAnalysisSql> Warnings{ get; set; } public ResultAnalysisFileSql() { } public ResultAnalysisFileSql(string fileSql) { if […]
我正在使用此代码通过C#发送通知消息与GCM,使用Winforms,Webforms,无论如何。 现在我想发送到FCM(Firebase云消息传递)。 我应该更新我的代码吗? : public class AndroidGCMPushNotification { public AndroidGCMPushNotification() { // // TODO: Add constructor logic here // } public string SendNotification(string deviceId, string message) { string SERVER_API_KEY = "server api key"; var SENDER_ID = "application number"; var value = message; WebRequest tRequest; tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send"); tRequest.Method = "post"; tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8"; tRequest.Headers.Add(string.Format("Authorization: […]