小编dcr*_*rer的帖子

引用的绑定类型为drop qualifiers的值

我有来自Text Accelerated C++的以下来源.当我尝试编译源文件时,我得到以下列出的编译错误.我是C++语言的新手,所以你的帮助将不胜感激.

#include <algorithm>
#include <iomanip>
#include <ios>
#include <iostream>
#include <string>
#include <vector>
#include <stdexcept>

using namespace std;

struct Student_info {
    string name;
    double midterm, final;
    vector<double> homework;
};

double median(vector<double>);
double grade(const Student_info&);
double grade(double, double, double);
double grade(double, double, const vector<double>&);
istream& read_hw(istream&, vector<double>&);
istream& read(istream&, Student_info&);
bool compare(const Student_info&, Student_info&);

int main() {

    vector<Student_info> students;
    Student_info record;
    string::size_type maxlen = 0;

    while(read(cin, record)) {
        maxlen = max(maxlen, record.name.size());
        students.push_back(record);
    }

    sort(students.begin(), students.end(), compare);

    for(vector<Student_info>::size_type i …
Run Code Online (Sandbox Code Playgroud)

c++

19
推荐指数
2
解决办法
5万
查看次数

用于C/C++和Java的Eclipse IDE

我试图在运行el capitan的mac上设置一个java IDE,但是我找到的安装程序要求我为c/c ++和java(Eclipse Neon)安装一个单独的IDE.eclipse有哪些选项可以让我有一个IDE用于多种语言?

c++ java eclipse macos

9
推荐指数
2
解决办法
2万
查看次数

使用windbg检查Win32 ReadFile lpBuffer参数

我正在使用 Johnson M. Hart 所著的《Windows 系统编程 4th》一书中的以下函数。熟悉 Win32 API。我还在使用 Windbg 检查该功能。当检查指向接收从文件读取的数据的缓冲区的参数时。我从调试器得到以下输出。有人可以解释如何使用windbg来检查lpBuffer吗?

#include "Everything.h"

#define BUF_SIZE 256      

BOOL cci_f (LPCTSTR fIn, LPCTSTR fOut, DWORD shift)
{
    HANDLE hIn, hOut;
    DWORD nIn, nOut, iCopy;
    BYTE buffer [BUF_SIZE], bShift = (BYTE)shift;
    BOOL writeOK = TRUE;

    hIn = CreateFile (fIn, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hIn == INVALID_HANDLE_VALUE) return FALSE;

    hOut = CreateFile (fOut, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hOut == INVALID_HANDLE_VALUE) {
        CloseHandle(hIn);
        return FALSE;
    }

    while (writeOK && …
Run Code Online (Sandbox Code Playgroud)

winapi windbg

5
推荐指数
1
解决办法
2401
查看次数

OS X的c ++ 14编译器

有人可以推荐在OS X平台上支持c ++ 14的编译器吗?我正在学习Bjarne Stroustrup的编程和原理,并需要一些帮助来获取本书上下文的适当编译器(c ++ 14).

c++ macos

4
推荐指数
2
解决办法
1万
查看次数

Python3.4 pickle dump 函数失败并出现 TypeError

我有一个简单的脚本,假设导入一个初始化 db 字典的模块。然后脚本应该打开一个文件并使用 pickle.dump 将 db 字典写入文件。但是它失败并出现以下类型错误:

Traceback (most recent call last):
  File "make_db_pickle.py", line 6, in <module>
    pickle.dump(db, dbfile)
TypeError: must be str, not bytes

from initdata import db
import pickle
dbfile = open('people_pickle', 'w')
pickle.dump(db, dbfile)
dbfile.close()
Run Code Online (Sandbox Code Playgroud)

type 函数将我的变量 dbfile 和 db 显示为:

<class '_io.TextIOWrapper'>
<class 'dict'>
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
2067
查看次数

C#for循环和后增量

我很难理解为什么以下循环在每次迭代时打印0.

for (int i = 0, j = 0; i < 10; i++)
{
    Console.WriteLine(j += j++);
}
Run Code Online (Sandbox Code Playgroud)

每次迭代后,j的值不应该增加吗?如果没有,请你解释一下吗?

在从@Jon Skeet获得正反馈之后,我逐步完成了对语句的反汇编,并且能够解释代码在低级别的行为.我添加了反汇编和我的评论.

谢谢!!!

    54:                 Console.WriteLine(j += j++);
0000004f  mov         eax,dword ptr [ebp-40h]   /* [ebp-40h] == 0 move to eax */
00000052  mov         dword ptr [ebp-48h],eax   /* eax == 0 move to [ebp-48h] */
00000055  mov         eax,dword ptr [ebp-40h]   /* [ebp-40h] move to eax == 0 */
00000058  mov         dword ptr [ebp-4Ch],eax   /* eax move to [ebp-4Ch] == 0 */
0000005b  inc …
Run Code Online (Sandbox Code Playgroud)

.net c#

4
推荐指数
1
解决办法
260
查看次数

日历时间存储为有符号的 32 位整数 - 何时会溢出

我正在 Unix 中进行高级编程的练习并遇到以下问题:

如果日历时间存储为有符号的 32 位整数,它会在哪一年溢出?

正符号整数 = 2147483647

在下面的计算中,我没有考虑闰年:

((((2147483647 / 60sec) /60min)/24)/365) = 68.1yrs
Run Code Online (Sandbox Code Playgroud)

这是一种幼稚的做法。我怎样才能专业地解决这个问题?

堆栈成员之前提出的以下解决方案对打印年份非常有帮助。

int epoch_time = INT_MAX;
struct tm * timeinfo;
time_t epoch_time_as_time_t = epoch_time;
timeinfo = localtime(&epoch_time_as_time_t);
printf("2] overflow date: %s", asctime(timeinfo));
Run Code Online (Sandbox Code Playgroud)

c unix time-t year2038

4
推荐指数
2
解决办法
1318
查看次数

使用代码而不是配置文件将Message Inspector添加到WCF服务

我通过Microsoft培训工具包(WCF)中的示例进行研究。它需要将“消息检查”添加到服务。

到目前为止,我已经创建了检查实现类,消息行为类和消息行为类扩展。

与其通过配置文件添加行为,不如将其添加到服务主机文件中。以下是实现类...

 public class MessageTrace : IDispatchMessageInspector
    {
        private Message TraceMessage(MessageBuffer buffer)
        {
            Message msg = buffer.CreateMessage();
            StringBuilder sb = new StringBuilder("Message content");
            sb.Append(msg.ToString());
            Console.WriteLine(sb.ToString());
            return buffer.CreateMessage();
        }

        public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
        {
            request = TraceMessage(request.CreateBufferedCopy(Int32.MaxValue));
            return null;
        }

        public void BeforeSendReply(ref Message reply, object correlationState)
        {
            reply = TraceMessage(reply.CreateBufferedCopy(Int32.MaxValue));
        }
    }

public class TraceMessageBehavior : IEndpointBehavior
    {
        public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
        {}

        public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
        {}

        public void …
Run Code Online (Sandbox Code Playgroud)

.net c# service wcf web-services

3
推荐指数
1
解决办法
3268
查看次数

重叠的结构和LARGE_INTEGER

我通过Windows系统编程中的练习进行工作,但是我并没有完全理解LARGE_INTEGER和OVERLAPPED结构。例如,我在main中定义了以下结构。第一种结构用于跟踪记录数。第二个用于记录数据。作者定义并使用两个重叠的结构来跟踪记录文件的偏移量。

typedef struct _HEADER {
        DWORD           numRecords;
        DWORD           numNonEmptyRecords;
    } HEADER; /* 8bytes */

typedef struct _RECORD { 
    DWORD           referenceCount;  
    SYSTEMTIME      recordCreationTime;
    SYSTEMTIME      recordLastRefernceTime;
    SYSTEMTIME      recordUpdateTime;
    TCHAR           dataString[STRING_SIZE];
} RECORD; /* 308bytes */

LARGE_INTEGER currentPtr;
OVERLAPPED ov = {0, 0, 0, 0, NULL}, ovZero = {0, 0, 0, 0, NULL};
Run Code Online (Sandbox Code Playgroud)

创建记录后。可以提示用户读取,写入或删除记录。用户输入的记录存储在recNo中。

currentPtr.QuadPart = (LONGLONG)recNo * sizeof(RECORD) + sizeof(HEADER);
ov.Offset = currentPtr.LowPart;
ov.OffsetHigh = currentPtr.HighPart;
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下如何计算LARGE_INTEGR currentPtr的值吗?什么是联盟?我看了windbg中的示例,但我不明白currentPtr.LowPart和currentPtr.HighPart的计算方式。下面是使用OVERLAPPED结构调用文件读取操作的示例。

ReadFile (hFile, &record, sizeof …
Run Code Online (Sandbox Code Playgroud)

c windows debugging winapi windbg

3
推荐指数
1
解决办法
691
查看次数

分析包含MSVCR异常的转储文件

我有以下线程堆栈与msvcr100!_CxxThrowException.

 # ChildEBP RetAddr  Args to Child              
00 0973ef38 7739bf53 7739610a 00000000 00000000 ntdll!KiFastSystemCallRet
01 0973ef70 7738965e 0019029e 00000000 00000001 user32!NtUserWaitMessage+0xc
02 0973ef98 7739f762 77380000 0016aa20 00000000 user32!InternalDialogBox+0xd0
03 0973f258 7739f047 0973f3b4 00000000 ffffffff user32!SoftModalMessageBox+0x94b
04 0973f3a8 7739eec9 0973f3b4 00000028 00000000 user32!MessageBoxWorker+0x2ba
05 0973f400 773d7d0d 00000000 001aaf18 0019bb60 user32!MessageBoxTimeoutW+0x7a
06 0973f434 773c42c8 00000000 7787b9f0 7786c24c user32!MessageBoxTimeoutA+0x9c
07 0973f454 773c42a4 00000000 7787b9f0 7786c24c user32!MessageBoxExA+0x1b
08 0973f470 7786f265 00000000 7787b9f0 7786c24c user32!MessageBoxA+0x45
09 0973f4a4 7786c20f 7787b9f0 7786c24c 00012010 netman!__crtMessageBoxA+0xf6
0a 0973f4cc 7786f34e …
Run Code Online (Sandbox Code Playgroud)

debugging winapi windbg

3
推荐指数
2
解决办法
2058
查看次数

标签 统计

c++ ×3

winapi ×3

windbg ×3

.net ×2

c ×2

c# ×2

debugging ×2

macos ×2

eclipse ×1

java ×1

python ×1

service ×1

time-t ×1

unix ×1

wcf ×1

web-services ×1

windows ×1

year2038 ×1