小编moo*_*ker的帖子

摆脱_WIN32_WINNT未定义.

我试图摆脱未定义的_WIN32_WINNT:

_WIN32_WINNT未定义.默认为_WIN32_WINNT_MAXVER(参见WinSDKVer.h)

我正在Win 7上运行VS 2010,我正在尝试重新编译一个在Win CE中遵循的MFC项目.

我已经看过WinSDKVer.h并且可以看到它发生了什么,但我无法弄清楚WIN32_WINNT首先被定义/设置的位置.

如果我查看pre-prosessor定义的宏部分,但是我无法更改它,$(OS)设置为Windows_NT.不知道那与它有什么关系吗?

有什么想法吗?

非常感谢

c++ mfc

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

在C结构中的声明时初始化指针

有没有办法在声明时初始化C结构中的指针:

struct person
{
  uint8_t age;
  uint16_t * datablock;
} mike = { 2, malloc(4) };
Run Code Online (Sandbox Code Playgroud)

我已经尝试过上面的代码,但是我得到了:

初始化元素对于数据块成员不是常量.

我正在使用GCC.

c malloc struct pointers

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

以正确的字节序发送UDP数据包

大家好,我在理解网络字节顺序以及通过UDP发送和接收数据的顺序时遇到了麻烦。我正在使用C#

我有一个结构控股:

message.start_id         = 0x7777CCCC;
message.message _id      = 0xBBB67000;
     more data
Run Code Online (Sandbox Code Playgroud)

消息定义有 [StructLayout(LayoutKind.Sequential)]

我首先使用以下方法将结构转换为字节数组:

public byte[] StructureToByteArray(object obj)
{ 
    int len = Marshal.SizeOf(obj);
    byte[] arr = new byte[len];
    IntPtr ptr = Marshal.AllocHGlobal(len);
    Marshal.StructureToPtr(obj, ptr, true);
    Marshal.Copy(ptr, arr, 0, len);
    Marshal.FreeHGlobal(ptr);
    return arr;
}
Run Code Online (Sandbox Code Playgroud)

然后检查字节序:

if (BitConverter.IsLittleEndian)
{
    Array.Reverse(packet);
}
Run Code Online (Sandbox Code Playgroud)

然后我发送

socket.SendTo(packet, endPoint);
Run Code Online (Sandbox Code Playgroud)

当我发送此消息时,接收端会收到应用了正确字节序的消息,但字节顺序相反,因此在wireshark中查看:

其余........................ BBB67000 7777CCCC

当我期望的时候:7777CCCC BBB67000 ...........其余

我期望的是正确的还是结构中的第一个字节是最后一个到达是正常的?

非常感谢

c# udp bytearray endianness

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

在 Celery 任务中获取 Django 频道访问权限

我有一个 Django 应用程序,它使用通道来监视 WebSocket 以启动 Celery 中的后端任务。它当前睡眠给定的数量,然后返回 true。

问题是我不知道如何从 celery 任务中访问 WebSocket,所以我可以在完成后通知 UI。

celery==4.3.0
channels==2.2.0
Django==2.2.4
django-celery-results==1.1.2
djangorestframework==3.10.2
Run Code Online (Sandbox Code Playgroud)

我的任务.py

from __future__ import absolute_import, unicode_literals
from celery import shared_task
import time

@shared_task
def gotosleep(timeInSecs):
    time.sleep(timeInSecs)
    return True
Run Code Online (Sandbox Code Playgroud)

我的消费者.py

from channels.generic.websocket import WebsocketConsumer
import json
from access.tasks import gotosleep

class AccessConsumer(WebsocketConsumer):
    def connect(self):
        self.accept()


    def disconnect(self, close_code):
        pass

    def receive(self, text_data):
       text_data_json = json.loads(text_data)
       message = text_data_json['message']
        if message.isnumeric() == True:
            print("------------------------------------------------------")
            print(message)

            gotosleep.delay(int(message))

            self.send(text_data=json.dumps({
                'message': 'We are dealing with your request' …
Run Code Online (Sandbox Code Playgroud)

django celery django-celery django-channels

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

标签 统计

bytearray ×1

c ×1

c# ×1

c++ ×1

celery ×1

django ×1

django-celery ×1

django-channels ×1

endianness ×1

malloc ×1

mfc ×1

pointers ×1

struct ×1

udp ×1