注册 登录
编程论坛 VC++/MFC

打印机API

liao25428301 发布于 2013-01-17 14:25, 791 次点击

HANDLE pHandle;
if(!::OpenPrinter(sPrinterName,&pHandle,NULL)
{
/////
{

调试的时候发现OpenPrinter成功,可为什么hPrinter就没有了???
只有本站会员才能查看附件,请 登录
4 回复
#2
yuccn2013-01-17 17:11
你是说OpenPrinter 返回true ,而没有得handle吗?
我不确定你的OpenPrinter 是否成功了

HANDLE pHandle; 定义的时候最好初始化为NULL吧,方便调试

GetLastError 看下错误码是什么
#3
liao254283012013-01-20 17:16
回复 2楼 yuccn
对 就是OPEN返回TURE了,可是HANDLE还是空
#4
milantgh2013-01-20 17:36
#include <iostream.h>

class Base1
{
    int b1;

public:
   
    Base1 (int i)
    {
        b1 = i;

        cout << "Constructor Base1." << endl;
    }

    ~Base1 ()
    {
        cout << "Destructor Base1." << endl;
    }

    void Print ()
    {
        cout << b1 << '\t';
    }
};

class Base2
{
    int b2;

public:
   
    Base2 (int i)
    {
        b2 = i;

        cout << "Constructor Base2." << endl;
    }

    ~Base2 ()
    {
        cout << "Destructor Base2." << endl;
    }

    void Print ()
    {
        cout << b2 << '\t';
    }
};

class Base3 :public Base2
{
    int b3;

public:
   
    Base3 (int i, int j) : Base2 (i)
    {
        b3 = j;

        cout << "Constructor Base3." << endl;
    }

    ~Base3 ()
    {
        cout << "Destructor Base3." << endl;
    }

    void Print ()
    {
        Base2:: Print ();

        cout << b3 << '\t';
    }

    class Base4
    {
        int b4;

    public:
        
        Base4 ()
        {
            b4 = 0;

            cout << "Constructor Base4." << endl;
        }

        ~Base4 ()
        {
            cout << "Destructor Base4." << endl;
        }

        void Print ()
        {
            cout << b4 << '\t';
        }
    };
};

class Member
{
    int m;

public:
   
    Member (int i)
    {
        m = i;

        cout << "Constructor Member." << endl;
    }

    ~Member ()
    {
        cout << "Destructor Member." << endl;
    }

    int GetM ()
    {
        return m;
    }


};

class Derived :public Base3, public Base1, public Base4
{
    int d;

    Member mem;

public:
   
    Derived (int i, int j, int k, int l, int q);

    ~Derived ();

    void Print ();
};

Derived:: Derived (int i, int j, int k, int l, int q) : Base1 (i) , Base3 (j, k), mem (l)
{
    d = q;

    cout << "Constructor Derived." << endl;
}

Derived:: ~Derived ()
{
    cout << "Destructor Derived." << endl;
}

void Derived:: Print ()
{
    Base4:: Print ();

    Base1:: Print ();

    Base3:: Print ();

    cout << mem.GetM () << '\t';

    cout << d << endl;
}

void main (void)
{
    Derived obj (1, 2, 3, 4, 5);

    obj.Print ();
}
#5
milantgh2013-01-20 17:37
怎么解决???   运行有错   大神帮忙!!!
1