vc++-VC++如何调用C#编写的串口驱动 DLL

问题描述

VC++如何调用C#编写的串口驱动 DLL
最近弄一个串口打印的项目,我一直是用VC++进行开发的,c#没用过,但是对方提供的打印机的DEMO却是C#的例程,本来想着DLL是跨语言的,应该没什么问题,但是我用vc++编写了一个测试程序,确没有任何数据输出,很简单的例程,我按流程在上面加了打开串口,设置串口,发送数据,关闭串口。这几步都是用的现成的dll里面的函数,他把串口的数据操作也封装起来了,然后我就想到,在c#中是可以直接用库函数对串口读写,是不是因为这个原因,导致我在vc++中不能使用?

里面所有的都是用DLL提供的函数直接操作串口,但是就是没有串口数据输出。

注:打印机提供的C#的例程DEMO是可以正常串口打印的。

求大神解答。下面是我在vc++的窗初始化函数里写的流程。

 BOOL CTestDll2008Dlg::OnInitDialog(){    CDialog::OnInitDialog();    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动    //  执行此操作    SetIcon(m_hIcon TRUE);         // 设置大图标    SetIcon(m_hIcon FALSE);        // 设置小图标    if (LoadPrintLib() == FALSE)    {        AfxMessageBox(_T(""printdll.dll not found""));        return FALSE;    }    ASCII_OpenPrinter(3);    //ComState cs;    //cs.dwBaudRate = 9600;    //cs.Parity = NOPARITY;    //cs.StopBits = ONESTOPBIT;    DCB dcb;    dcb.BaudRate = CBR_9600;    dcb.ByteSize = 8;    dcb.Parity = NOPARITY;    dcb.StopBits = ONESTOPBIT;    ASCII_SetComPortParam(dcb);    char pBuff[3] = { 0x1b0x570x02};    ASCII_DirectData(pBuff3);    char pBuff1[] = {""hello world""};    ASCII_DirectData(pBuff110);    pBuff[2] = 0x01;    ASCII_DirectData(pBuff3);    ASCII_DirectData(pBuff110);    ASCII_ClosePrinter();    UnloadPrintLib();    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE}

解决方案

用串口调试助手,看你的程序和C#的发送接收的有什么不同。检查你的波特率、校验、同步等设置,端口号

解决方案二:
在C#.net中调用VC 6.0编写的DLL文件
在C#中调用VC编写的dll库
在C#中调用VC编写的dll库

时间: 2025-01-20 14:12:37

vc++-VC++如何调用C#编写的串口驱动 DLL的相关文章

vc-急!VC编写的串口程序,但数据老是接收不全,请大家看看问题出在哪里,在此先谢谢!!

问题描述 急!VC编写的串口程序,但数据老是接收不全,请大家看看问题出在哪里,在此先谢谢!! 下面是处理串口接收数据的函数,我是用一个进程函数来实现的,串口采用的是同步方式,问题出在下面这一段函数,老是没接收完就退出了: 下面为处理接收数据的进程函数 解决方案 我在调试的时候,字符串str3都可以正常接收,但一自动运行,str3里面的数据就会只有一小段. 解决方案二: 先不对收到的内容进行处理,将收到的内容一个个打印出来看下. 解决方案三: 此问题已解决,软件没有问题,是硬件连线的问题,望以后有

有关c# 调用vc++编写的非托管DLL、socket编程等相关知识的讲的比较详细的书籍

问题描述 有关c# 调用vc++编写的非托管DLL.socket编程等相关知识的讲的比较详细的书籍 学习c# 调用vc++编写的非托管DLL.socket编程等相关知识的讲的比较详细的书籍都有哪些?(最好是基于VS2008的) 解决方案 c#调用非托管C++生成的dllc# 调用 C++ 非托管 DllC#调用非托管dll 解决方案二: 这样一个知识点,最好是 Baidu/Google 查找来解决 书上的内容,没有网络上的丰富

vc++-新人求帮助:VC6 调用delphi编写的com组件函数 报错

问题描述 新人求帮助:VC6 调用delphi编写的com组件函数 报错 代码: IElectric *ptr = NULL; CLSID clsid; HRESULT hr = CLSIDFromString((LPOLESTR)L"{18F86FFB-158B-42D6-9203-C4197A4E76FE}",&clsid); hr = CoInitialize(0); if(!SUCCEEDED(hr)) { int nCode = GetLastError(); } h

制作MSN机器人,如何使用Vc.Net调用C#编写的.net库

问题描述 我想编写一个MSN机器人,并找到相应的MSN协议库,就可以不用研究MSN的协议了.但此MSN协议库(DotMsn)是用C#编写的.net的库,我现在由于对C#不熟悉,还想用VC编写.所以决定使用VC.net,来调用此.net的库.但是我并不太清楚,VC.net如何来调用此.net的库(DotMsn)不知哪位能提供一个例子程序,如何调用.net的库下面是C#调用此库的例子程序的部分代码usingSystem;usingSystem.Drawing;usingSystem.Collecti

c语言-VC++6.0开发工具,打开串口,重叠IO操作,提示有访问冲突,求大神指点

问题描述 VC++6.0开发工具,打开串口,重叠IO操作,提示有访问冲突,求大神指点 #include #include LRESULT CALLBACK WndProc (HWND hwnd UINT msg WPARAM wParam LPARAM lParam); #define WM_TRANSFINISHED (WM_USER + 1) typedef struct{ HWND hwnd; HANDLE hComm;}PARAMS *PPARAMS; int WINAPI WinMai

vc++-请问,如果VC++6成功调用动态链接库了,那么Qt是不是也可以成功调用库?

问题描述 请问,如果VC++6成功调用动态链接库了,那么Qt是不是也可以成功调用库? 请问,如果VC++6成功调用动态链接库了,那么Qt是不是也可以成功调用库? 解决方案 VC6 工作在是windows ,QT是跨平台的, 对于同一个库文件,VC能成功调用,那么Windows平台上的QT也应该有对应的方法能成功调用,但是换换平台应该就不行了 解决方案二: 要看是什么连接库啊,看是不是Win32平台的,看是不是对质VC6编译器的,如果是就可以了.在编译器编译命令中添加库引用就可以了. 解决方案三:

c++-vc程序中调用控件的方法,谢谢。

问题描述 vc程序中调用控件的方法,谢谢. 程序中该如何调用ntgraph这个画图控件.我刚接触控件,现在仅能在对话框中插入该控件的水平.1.程序和控件是分别建个工程吗?2.在程序中该怎么调用控件呢?我想用这个控件的一个画图函数.百度后只了解到要在头文件中插入代码还有之类的看不懂了.希望有人能帮忙回答下或着发份相关资料,时间比较紧,十分感谢! 解决方案 这次请看清楚,不要采纳错了.谢谢 解决方案二: 新建一个mfc对话框程序,然后在对话框设计器中插入activex控件,选择你的控件即可. 参考:

c++-vc中程序调用ntgraph控件

问题描述 vc中程序调用ntgraph控件 程序调用控件,程序已经写好,利用ntgraph控件来画图,凑足30字. 解决方案 你先试试看,如果不行我给你完整的项目. 解决方案二: // gtDlg.cpp : implementation file // #include "stdafx.h" #include "gt.h" #include "gtDlg.h" #include<iostream> #include<fstre

atl com c++ ocx-c++调用自己编写的ocx库文件失败原因

问题描述 c++调用自己编写的ocx库文件失败原因 #include #include #include "../last/LAST.h" #include "../last/LAST_i.c" void main(void) { // 声明一个HRESULT变量以及一个Simple_ATL接口的指针 IMyClass *IMyClass = NULL; HRESULT hr = CoInitialize(NULL); // 初始化COM // 现在初始化COM h