小编Sha*_*med的帖子

打印到非基于xps的打印机时,PrintQueue.AddJob会挂起

我正在尝试使用以下代码将xps文档打印到打印机(网络打印机,某些虚拟本地打印机,基于xps和非xps).

C#来源:

static void Main(string[] args)
{
    PrintServer printServer = new PrintServer(@"\\printserver.csez.zohocorpin.com");
    foreach (PrintQueue queue in printServer.GetPrintQueues())
    {
        Console.WriteLine("Printer: {0}, Port: {1}, ShareName: {2}, status: {3}, PrintingIsCancelled: {4}", 
            queue.Name, queue.QueuePort.Name, queue.ShareName, queue.QueueStatus, queue.PrintingIsCancelled);
        Program program = new Program();

        Thread printingThread = new Thread(() => program.Print_XPXFile(queue, @"D:\Assist\RemotePrint\Spool\Donalduck.xps"));
        // Set the thread that will use PrintQueue.AddJob to single threading.
        printingThread.SetApartmentState(ApartmentState.STA);

        printingThread.Start();
        printingThread.Join();
    }
}

public void Print_XPXFile(PrintQueue pQueue, String FilePath)
{
    // Create print server and print queue.
    bool fastCopy = pQueue.IsXpsDevice; …
Run Code Online (Sandbox Code Playgroud)

c# printing exception

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

对于使用 PyBluez 的蓝牙连接,即使在配对后,套接字连接也不会被接受

我有一个使用 Rasbian OS 启动的 Raspberry pi B 型,并插入了一个蓝牙适配器。当从我的 PC 搜索时,我能够发现我的 pi,并且能够使用 Blueman GUI 进行配对。这是我用于配对过程的 python 程序:

from bluetooth import *

server_sock=BluetoothSocket(L2CAP)
server_sock.bind(("", 17))

with open(sys.path[0] + "/sdp_record.xml", "r") as fh:
        service_record = fh.read()
self.bus = dbus.SystemBus()
self.manager = dbus.Interface(self.bus.get_object("org.bluez", "/"),"org.bluez.Manager")
adapter_path = self.manager.DefaultAdapter()
self.service = dbus.Interface(self.bus.get_object("org.bluez",adapter_path),
                                                       "org.bluez.Service")
service_handle = service.AddRecord(service_record)
print "Service record added"
server_sock.listen(1)

print("Waiting for connection on L2CAP")

try:
    client_sock, client_info = server_sock.accept()
    print("Accepted connection from ", client_info)

    while True:
        data = client_sock.recv(1024)
        if len(data) == 0:
                break …
Run Code Online (Sandbox Code Playgroud)

python bluetooth pybluez

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

使用xcvdata删除标准TCP IP端口无法正常工作

Xcvdata()用于删除端口.

BOOL DeletePortCus( TCHAR* PortName )
{
    HANDLE hPrinter;
    PRINTER_DEFAULTS PrinterDefaults;
    memset(&PrinterDefaults, 0, sizeof(PrinterDefaults));

    PrinterDefaults.pDatatype       = NULL;
    PrinterDefaults.pDevMode        = NULL;
    PrinterDefaults.DesiredAccess   = SERVER_ACCESS_ADMINISTER;

    DWORD needed = 0;
    DWORD rslt = 0;

    //Port data
    PORT_DATA_1 pOutputData ;
    DWORD error = 0;


    if (!OpenPrinter(L",XcvMonitor Standard TCP/IP Port", &hPrinter, &PrinterDefaults))
    {
        LPVOID lpMsgBuf; 
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                NULL, GetLastError(), NULL,(LPTSTR) &lpMsgBuf, 0, NULL ); 

        _tprintf( TEXT("Error in OpenPrinter. Error msg : %s"),lpMsgBuf);
        LocalFree( lpMsgBuf );

        return FALSE;
    }

    DWORD xcvresult= 0;

    if …
Run Code Online (Sandbox Code Playgroud)

c++ windows

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

为什么std :: string上的Sizeof运算符会产生意外结果?

在以下代码中:

#include <iostream>
#include <string>
using namespace std;

int main() {
    char buff[100];
    _snprintf(buff, sizeof(buff), "%s %d", "Name",2); //snprintf incase of ideone
    string buffAsStdStr = buff;
    cout<<buffAsStdStr<<endl;
    cout<<"len: "<<buffAsStdStr.length()<<endl;
    cout<<sizeof(buffAsStdStr)<<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

buffAsStdStr中字符串的长度为6,但是当我在Visual Studio 2012中运行时,sizeof show的值为28,在ideone中为32.预期大小为7,包括尾随的NULL char.

sizeof运算符出现意外结果的原因是什么?为什么结果会在visual studio和ideone中发生变化?

c++ string sizeof

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

标签 统计

c++ ×2

bluetooth ×1

c# ×1

exception ×1

printing ×1

pybluez ×1

python ×1

sizeof ×1

string ×1

windows ×1