小编Mar*_*nen的帖子

不止一次包含头文件

#include <stdio.h>
#include <stdio.h>

int main ()
{
   printf ("hello world");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,编译器不会给包括stdio.h两次的任何警告/错误.为什么会这样?不是功能scanf,printf声明和定义现在的两倍等等?

提前致谢

c header-files

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

适用于Python 3.x的Sqlite版本

我想在Python 3.1.3中使用sqlite3,我需要将enable_load_extension设置为true.要做到这一点,我相信我需要sqlite版本3.x. 从这里的阅读帖子来看,看起来合适的sqlite版本应该与python 2.6及更高版本捆绑在一起.但是,当我这样做时:

import sqlite3
sqlite3.version_info
Run Code Online (Sandbox Code Playgroud)

返回的结果是:'2.4.1'

我在运行Python 2.6的另一台机器上得到了相同的答案.

pysqlite站点没有Python 3.x的二进制文件.我的Python副本来自官方Python站点.

那么:1)我应该用什么版本的sqlite 3.1?2)如果我应该有一个更新的版本,它已经消失了 - 我需要设置一个环境变量吗?2)如果我需要你

python sqlite

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

无法使用ctypes将参数传递给dll(Python)

使用ctypes时遇到一些问题

我有一个带有以下界面的testdll

extern "C"
{
    // Returns a + b
    double Add(double a, double b);
    // Returns a - b
    double Subtract(double a, double b);
    // Returns a * b
    double Multiply(double a, double b);
    // Returns a / b
    double Divide(double a, double b);
}
Run Code Online (Sandbox Code Playgroud)

我也有一个.def文件,所以我有"真正的"名字

LIBRARY "MathFuncsDll"
EXPORTS

 Add
 Subtract
 Multiply
 Divide
Run Code Online (Sandbox Code Playgroud)

我可以通过ctype从dll加载和访问函数,但我无法传递参数,请参阅python输出

>>> from ctypes import *
>>> x=windll.MathFuncsDll
>>> x
<WinDLL 'MathFuncsDll', handle 560000 at 29e1710>
>>> a=c_double(2.12)
>>> b=c_double(3.4432)
>>> x.Add(a,b)

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python dll ctypes

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

如何释放与SWIG一起返回的malloc'ed char*

我正在使用SWIG,我的函数返回一个char *malloc'ed.SWIG回归PyString_FromStringAndSize(my-char-str, len).

有没有办法在my-char-str不编辑C包装器代码的情况下释放它?

c python swig

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

hijri(伊斯兰)日历问题!

我会将格里高利日期转换为Hijri(伊斯兰教)日期.可以在网上搜索后,我找到了一个转换它的源代码.我将代码从Java和PHP转换为C base.

工具有时候工作没有任何问题.但有些日子有问题.

我需要你的帮助来修复工具或可用的代码,没有任何问题!BTW我发现了另一个源代码(http://emr.cs.iit.edu/~reingold/calendar.C),它是C++库.因为我不知道C++是否有人可以将其转换为C Base或Objective C将是完美的(仍然不确定此代码是否正常工作).

PS您可以在以下网址查看正确的日期:islamicfinder.org/Hcal/index.php

void gregorian_to_hijri(int* h_y, int* h_m, int* h_d, int  g_y, int  g_m, int  g_d)
{
    int year, month, day;

    int zyr;
    int zd;
    int zm;
    int zy;

    float zjd;
    int zl;
    int zn;
    int zj;

    year = g_y;
    month = g_m;
    day = g_d;


    zyr = year;
    zd = day;
    zm = month;
    zy = zyr;

    if((zy > 1582) || ((zy == 1582) && (zm > 10)) || ((zy == 1582) && …
Run Code Online (Sandbox Code Playgroud)

c c++ objective-c hijri

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

如何在python中抓取分布在多行上的html标签?

我正在尝试用 python 抓取网页。我能够轻松获得单行标签的结果,但对于分布在多行上的标签,我的代码无法检索任何内容。

在 HTML 源代码中,单行标签显示为:

<td><span class="facultyName">John Matthew Falletta, MD</span>
Run Code Online (Sandbox Code Playgroud)

并且多个行标记存在为:

<td><span class="label">Division:</span>
            &nbsp;&nbsp;
                  </td><td>Hematology/Oncology</td>
Run Code Online (Sandbox Code Playgroud)

这是我写的:

patFinderFullname = re.compile('<span class="facultyName">(.*)</span>')

fullname = re.findall(patFinderFullname,webpage)         #works fine

patFinderDivision = re.compile('<span class="label">Division:</span>&nbsp;&nbsp;</td><td>(.*)</td>')

division = re.findall(patFinderDivision,webpage)       #doesn't work
Run Code Online (Sandbox Code Playgroud)

这里我的网页变量包含必须被抓取的 url。有人可以指出,我错过了什么,或者我错在哪里?

python scripting web-scraping

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

如何在Python中设置桌面背景?(视窗)

这就是我正在尝试的:

import ctypes
import os
drive = "F:\\"
folder = "Keith's Stuff"
image = "midi turmes.png"
image_path = os.path.join(drive, folder, image)
SPI_SETDESKWALLPAPER = 20 
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, image_path, 3)
Run Code Online (Sandbox Code Playgroud)

基本上,这段代码显然应该将桌面背景设置为 midi turmes.png,它改变了桌面,但是,由于某些奇怪的原因,它始终是绿色背景(我在 Windows 中的个性化设置是图像后面的绿色背景)如何我要解决这个问题并使桌面看起来像这样吗?:https://i.stack.imgur.com/MRJ1H.png

python ctypes

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

通过套接字发送大文件

我有一个视频文件,想通过套接字发送它。视频被发送到客户端,但视频不可播放,并且接收到的视频大小为 2 KB。最重要的是视频大小为 43 MB。问题是什么?

服务器:

import socket

try:

    soc = socket.socket()
    print('socked created.')
    host = ''
    port = 8080

    soc.bind((host, port))
    print('soc bound.')

    soc.listen(10)
    print('waiting for connecting...')

    con, addr = soc.accept()
    print('server connected to IP: ' + addr[0] + " port: " + str(addr[1]))

    while True:

        filename = input('enter filename: ')
        file = open(filename, 'rb')
        sendfile = file.read(9000000)
        con.send(sendfile)
        print("file has been send.")
        break

    con.close()
    soc.close()

except socket.error as err:
    print('error ', str(err))
Run Code Online (Sandbox Code Playgroud)

客户:

import socket

soc = socket.socket(socket.AF_INET, …
Run Code Online (Sandbox Code Playgroud)

python sockets

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

在python中将ctypes结构转换为bytearray

有没有办法转换包含指向字节数组的指针的 Ctypes 结构?

class SRamAccess(ctypes.Structure):
    _fields_ = [('channel', ctypes.c_uint), ('offset', ctypes.c_uint), ('len', ctypes.c_uint), ('data', ctypes.c_char_p)]
Run Code Online (Sandbox Code Playgroud)

python arrays ctypes

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

Python:同时线程化多个无限循环

在 Python 中,我试图让一个无限循环同时开始并行运行,一个简单的例子是:

from threading import Thread

def func(argument):
    while True:
        print(argument)

def main():
    Thread(target=func("1")).start()
    Thread(target=func("2")).start()
    Thread(target=func("3")).start()
    Thread(target=func("4")).start()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

现在只有第一个线程运行,所以结果是:

1
1
1
1
....
Run Code Online (Sandbox Code Playgroud)

它应该是:

1
2
3
4
....
Run Code Online (Sandbox Code Playgroud)

我发现了几个类似的问题,但提供的解决方案似乎都不适合我,包括join在线程上使用。

因此,如果有人知道我的问题的解决方案,将不胜感激。

提前致谢!

python multithreading

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