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] = { 0x1b,0x57,0x02};
    ASCII_DirectData(pBuff,3);
    char pBuff1[] = {"hello world"};
    ASCII_DirectData(pBuff1,10);
    pBuff[2] = 0x01;
    ASCII_DirectData(pBuff,3);
    ASCII_DirectData(pBuff1,10);

    ASCII_ClosePrinter();
    UnloadPrintLib();

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

1个回答

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

c123nANDY
c123nandy 我用VC++写的程序就没有任何输出,而且我看了一下,我用的COM3,但是当运行另外一个COM3的串口时,并没有出现串口被占用的情况,说明串口都没有被打开,所以我怀疑是不是C#对串口使用库函数进行操作的封装,在VC++是不是用不了
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
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] = { 0x1b,0x57,0x02}; ASCII_DirectData(pBuff,3); char pBuff1[] = {"hello world"}; ASCII_DirectData(pBuff1,10); pBuff[2] = 0x01; ASCII_DirectData(pBuff,3); ASCII_DirectData(pBuff1,10); ASCII_ClosePrinter(); UnloadPrintLib(); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } ```
关于C++ 调用C# dll 出现无法转换的数据类型。。
C# 这个函数是这样定义的:Collection<string> EnumerateUsb(); 现在VC中可以正常调用C#的dll,包括需要的Namespace等, Collection<System::string> str = ls->EnumerateUsb(UsbDeviceType::AnyMasterEmulator); 现在用在这个方法获取出现如下错误:请问这个应该如何修改??如何做到数据的转换。。 1> CTestDlgDlg.cpp 1>CTestDlgDlg.cpp(164): error C2039: “string”: 不是“System”的成员 1>CTestDlgDlg.cpp(164): error C2065: “string”: 未声明的标识符 1>CTestDlgDlg.cpp(164): error C2923: “System::Collections::ObjectModel::Collection”: 对于参数“T”,“string”不是有效的 泛型 类型变量 1>CTestDlgDlg.cpp(164): error C2955: “System::Collections::ObjectModel::Collection”: 使用 类 泛型 需要 泛型 参数列表 1> c:\program files\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : 参见“System::Collections::ObjectModel::Collection”的声明 1>CTestDlgDlg.cpp(164): error C2670: “System::Collections::ObjectModel::Collection::Collection”: 函数模板不能将参数 1 由类型“System::Collections::ObjectModel::Collection<System::String ^> ^”转换
有关c# 调用vc++编写的非托管DLL、socket编程等相关知识的讲的比较详细的书籍
学习c# 调用vc++编写的非托管DLL、socket编程等相关知识的讲的比较详细的书籍都有哪些?(最好是基于VS2008的)
VC的MFC调用C#编写的ACTIVEX控件失败,求教是怎么回事?
在DIALOG类中加入了LoadActiveX方法 void CViewcharDlg::LoadActiveX(LPCTSTR strActiveXName, REFIID riidOfActiveX, int x, int y, int nWidth, int nHeight) { //Initialize ATL control containment code. BOOL(WINAPI *m_AtlAxWinInit)(); m_AtlAxWinInit = (BOOL(WINAPI *)(void))::GetProcAddress (_hWebLib, "AtlAxWinInit"); m_AtlAxWinInit(); // Get the dimensions of the main window's client // area, and enumerate the child windows. Pass the // dimensions to the child windows during enumeration. RECT rcClient; _hSelf = this->m_hWnd; //GetClientRect(_hSelf, &rcClient); _hAtl = ::CreateWindowEx( WS_EX_CLIENTEDGE, \ TEXT("AtlAxWin"), \ strActiveXName, \ WS_CHILD | WS_VISIBLE | WS_EX_RTLREADING,\ x, y, nWidth, nHeight,\ this->m_hWnd, \ NULL, \ NULL, \ NULL); if (!_hAtl) { ::MessageBox(NULL, TEXT("Can not load AtlAxWin!"), TEXT(""), MB_OK | MB_ICONSTOP); throw int(106901); } HRESULT(WINAPI *m_AtlAxGetControl) (HWND h, IUnknown** pp); m_AtlAxGetControl = (HRESULT(WINAPI *) (HWND, IUnknown**))::GetProcAddress(_hWebLib, "AtlAxGetControl"); m_AtlAxGetControl(_hAtl, &_pUnk); _pUnk->QueryInterface(__uuidof(Demo::IObjectSafetyPtr), (LPVOID *)&_pDotNetCOMPtr); if (_pDotNetCOMPtr != NULL) { //_pDotNetCOMPtr->SetInterfaceSafetyOptions((long)_hSelf); } else { // Get the dimensions of the main window's client // area, and enumerate the child windows. Pass the // dimensions to the child windows during enumeration. //RECT rcClient; // GetClientRect(_hSelf, &rcClient); ::DestroyWindow(_hAtl); _hAtl = ::CreateWindowEx( WS_EX_CLIENTEDGE, \ TEXT("AtlAxWin"), \ TEXT("MSHTML:""Please register ActiveX control before using this plugin."""), WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_EX_RTLREADING, \ 0, 0, nWidth, nHeight, \ this->m_hWnd, \ NULL, \ NULL, \ NULL); } } 然后在在要使用ActiveX的Dialog的OnInitDialog()中加入下面的代码。 LoadActiveX(TEXT("Demo.IObjectSafety"), __uuidof(Demo::IObjectSafety), 0, 0, 750, 500); 但是程序运行后VC控件窗口中出现了ACTIVEX控件窗口但是里面显示 已取消到网页的导航,确保 Web 地址 http://demo.iobjectsafety 正确。 请各位大神看下这是怎么回事?
C#调用VC++6.0的dll中问题
这是vc++中头文件#define GTDLL_API extern "C" __declspec(dllimport) short __stdcall 我在C#中引用 [DllImport("GT400.dll")] private extern static short GT_SetPos(int pos); 调用函数 private void SMotion() //S-曲线模式运动函数 { short rtn; rtn=GT_PrflS(); error(rtn); // 设置运动模式为S 曲线模式 rtn=GT_SetJerk(0.00000002); error(rtn); //设置最大加加速度为0.00000002 rtn=GT_SetMAcc(0.004); error(rtn); // 设置最大加速度为0.004 rtn=GT_SetVel(4); error(rtn); // 设置目标速度为4 rtn=GT_SetPos(80000); error(rtn); // 设置目标位置为80000 rtn=GT_Update(); error(rtn); // 刷新参数 } 就会出现 对 PInvoke 函数“测试!测试.Form1::GT_Home”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。 网上说的CallingConvention=CallingConvention.Cdecl试过,不可用呀! 求助大神。。。。
c#调用 vc++ 写的Automation of COM的问题
以前一直在vc环境下作开发,主程序和Automation of COM均用vc开发。现在需要在c#中调用vc写的Automation of COM,请问该如何调用呢?vc写的com主要是实现了些窗体的创建及显示,谢谢。最好能给个例子
VS2008 C# winform 64位程序动态调用VC++ 64位DLL LoadLibrary成功 但是GetProcAddress返回值为0
如果通过 Vs MFC 中调用这个64DLL 用同样的方式动态调用获取函数地址成功,就不知道C#里面为什么返回0。通过Marshal返回值为126. 64DLL是 通过VC6.0建立的程序然后用vs2010自动转换的然后编译生成的64位的DLL.2008建的也不行
用C#,Oracle 11g 怎样建立数据库?怎样学习?
怎样建立用C#建立以Oracle库为来源的数据库?从哪里入手?之前未接触过C#,对C++和C稍了解,但是都用的VC6.0,没用过VS2010,对Oracle不了解,求指导,怎样去完成数据库?学习的步骤怎样安排比较合理?
C#调用MFCdll里面的回调函数
.h文件如下 #include "StdAfx.h" #ifdef RTWRE_EXPORTS #define RTWRE_API __declspec(dllexport) #else #define RTWRE_API __declspec(dllimport) #ifdef _DEBUG #pragma comment(lib,"FunctionDll.lib") #else #pragma comment(lib,"FunctionDll.lib") #endif #endif //int MarkID——标志点ID号,1——角点,2——边点 //向量 double Va, double Vb, double Vc typedef void (CALLBACK * CHECKCLCFUNCTION) (int MarkID, double Va, double Vb,double Vc); CHECKCLCFUNCTION m_pCheckFunction; //回调函数指针 //返回input+2 extern "C" RTWRE_API int FDllTest(int input); //设置回调函数 /* SetCheckFunctionPoint 功 能 设置回调函数。 格 式 void SetCheckFunctionPoint(CHECKFUNCTION1 pCheckFuntion); 参 数 CHECKFUNCTION1 pCheckFuntion 回调函数名,具体定义见回调函数说明 返 回 值 无 */ extern "C" RTWRE_API void SetCheckFunctionPoint(CHECKCLCFUNCTION pCheckFuntion); 具体调用的函数如下 ![图片说明](https://img-ask.csdn.net/upload/201712/12/1513073186_707668.jpg) C#代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Runtime.InteropServices; namespace CSharpCallBackC { //FunctionDll.dll [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void ControlData(int a, double b,double c,double d); [DllImport(@"FunctionDll.dll", EntryPoint = "SetCheckFunctionPoint", CallingConvention = CallingConvention.Cdecl)] public partial class Form1 : Form { public Form1() { InitializeComponent(); } } } 主要问题在于最后声明函数的时候不会写,在 public static extern 语句后面总会报错,还有就是如果使用结构体应该怎么写。
如何vc++调用dll生成.ocx文件
本人已经用c#生成好了个.dll文件,如果用vc++调用.dll文件生成.ocx文件? 最好能有个DEMO指导。(本人没有学过c++) 请各位大神指导!
请教一个C#线程的问题
我在C#里面创建了一个线程,里面只写了一个MESSAGEBOX.SHOW,运行之后再关闭 发现这个MESSAGEBOX仍然保留在桌面上,请问这是怎么回事呀?我在FORMCLOSING 里面加了关闭线程的语句还是不行 我记得在VC里面像上面这样关闭窗口的话 会连同弹出的MESSAGEBOX一同关闭的
请问如何快速入门 VC#
小生今年大三,学习过C++和Java,感觉就业压力大,想学习下VC#,不知道应该看什么书,从哪里开始学?请大神给一个学习路线
VC#的window应用中如何清除窗口所有添加的控件??
VC#的window应用中如何清除窗口所有添加的控件?? 有什么快捷方式吗??
请教如何将如下VC++代码转换成C#代码,谢谢
int nKeyLen = strKey.GetLength(); if (nKeyLen == 0) strKey = _T("xxsswww"); srand((unsigned)time(NULL)); int nRange = 256; int nOffset = (rand() % nRange); CString strDest = _T(""); strDest.Format(_T("%1.2x"), nOffset); int nSrcAsc = 0; int nKeyPos = 0; for (int nSrcPos = 0; nSrcPos < strSrc.GetLength(); nSrcPos++) { int n = strSrc[nSrcPos]; nSrcAsc = (strSrc[nSrcPos] + nOffset) % 255; if (nKeyPos < nKeyLen - 1) nKeyPos += 1; else nKeyPos = 1; nSrcAsc = nSrcAsc ^ strKey[nKeyPos]; CString strTemp = _T(""); strTemp.Format(_T("%1.2x"), nSrcAsc); strDest += strTemp; nOffset = nSrcAsc; } return strDest;
C#调用VC写的带指针的方法
我贴一段完整的VC写的CHKSUM(是一个CRC校验) 现在想调用VC的这段代码或者哪位牛人直接帮我把这段VC的代码转成C#可用的最好,在此不胜感激。 VC代码: const WORD crctab[]={0X0000,0X1021,0X2042,0X30FC,0X4084,0X50A5,0X60C6,0X70E7, 0X8018,0X9156,0XA14A,0XB178,0XC18C,0XD1AD,0XE110,0XF1EF, 0XFD2E,0XED0F,0XDD6C,0XCD4D,0XBDAA,0XAD8B,0X9DE8,0X8DC9, 0X7C26,0X6C07,0X5C64,0X4C45,0X3CA2,0X2C83,0X1CE0,0X0CC1, 0X1231,0X0210,0X3273,0X2252,0X52B5,0X4294,0X72F7,0X62D6, 0X9339,0X8318,0XB37B,0XA35A,0XD3BD,0XC39C,0XF3FF,0XE3DE, 0X2462,0X3456,0X0420,0X1401,0X64E6,0X7497,0X44A4,0X5485, 0XA56A,0XB54B,0X8589,0X9509,0XE5EE,0XF597,0XC5AC,0XD58D, 0X3653,0X2672,0X1611,0X0630,0X76D7,0X66F6,0X5655,0X46B4, 0XB75B,0XA77A,0X9719,0X8738,0XF7DF,0XE7FE,0XD79D,0XC7BC, 0X48C4,0X58E5,0X6864,0X78A7,0X0840,0X1861,0X2802,0X3823, 0XC9CC,0XD9ED,0XE98E,0XF9AF,0X8948,0X9969,0XA90A,0XB92B, 0X5AF5,0X4AD4,0X7AB7,0X6A96,0X1A84,0X0A50,0X3A33,0X2A12, 0XDBFD,0XCBDC,0XFBBF,0XEB9E,0X9B79,0X8B58,0XBB3B,0XAB1A, 0X6CA6,0X7C87,0X4CE4,0X5CC5,0X2C22,0X3C03,0X0C60,0X1C41, 0XEDAE,0XFD8F,0XCDEC,0XDDCD,0XAD2A,0XBD0B,0X8D68,0X9D49, 0X7E97,0X6EB6,0X5ED5,0X4EF4,0X3E13,0X2E32,0X1E51,0X0E70, 0XFF9F,0XEFBE,0XDFDD,0XCFFC,0XBF95,0XAF3A,0X9F59,0X8F78, 0X9188,0X81A9,0XB1CA,0XA1EB,0XD10C,0XC12D,0XF14E,0XE16F, 0X1080,0X00A1,0X30C2,0X20E3,0X5004,0X4025,0X7046,0X6067, 0X83B9,0X9398,0XA3FB,0XB3AB,0XC33D,0XD31C,0XE37F,0XF35E, 0X02B1,0X1290,0X22F3,0X32D2,0X4235,0X5214,0X6277,0X7256, 0XB5EA,0XA5CB,0X95A8,0X85CD,0XF56E,0XE54F,0XD52C,0XC50D, 0X34E2,0X24C3,0X14A0,0X0481,0X745E,0X6447,0X5424,0X4405, 0XA7DB,0XB7FA,0X8799,0X97B8,0XE75F,0XF77E,0XC71D,0XD73C, 0X26D3,0X36F2,0X0691,0X16B0,0X8757,0X7676,0X4615,0X5634, 0XD94C,0XC96D,0XF90E,0XE92F,0X99C8,0X89E9,0XB98A,0XA9AB, 0X5844,0X4865,0X7806,0X6827,0X18C0,0X08E1,0X3882,0X28A3, 0XCB7D,0XDB5C,0XEB3F,0XFB1E,0X45F9,0X9BD8,0XABBB,0XBB9A, 0X4A75,0X5A54,0X6A37,0X7A16,0X0AF1,0X1AD0,0X2AB3,0X3A92, 0XEF1F,0XFF3E,0XCF5D,0XDF7C,0XCE9B,0XBFBA,0X8FD9,0X9FF8, 0X6E17,0X7E33,0X4E55,0X5E74,0X2E93,0X3EBE,0X0E9E,0X1ED6}; WORD CrcParity(BYTE *fp, WORD wLen) { WORD crcTemp=0; WORD i; BYTE num; for(i = 0; i < wLen;i ++) { num = (crcTemp >> 8) ^ (*(fp++)) & 0xff; crcTemp = crctab[num] ^ (crcTemp << 8); } return crcTemp; }
VC++与VC#的windows编程有区别吗??使用的类库一样吗??
VC++与VC#的windows编程有区别吗??使用的类库一样吗?? 比如这个里面的一些框架函数如Button等的使用相同吗?
VS2010 vc如何生成dll文件,如何调用dll动态库
求解VS2010 vc如何生成dll文件,如何调用dll动态库
存不存在C#做界面,c++做算法?
Vc做界面实在太难搞了。想发展其他门道的界面编程语言。有啥建议吗各位
matlab 和 c#混合编程 奔溃了!求救...
MATLAB has encountered an internal problem and needs to close. MATLAB crash file:C:\Users\ASUS\AppData\Local\Temp\matlab_crash_dump.8888-1: ------------------------------------------------------------------------ Unhandled C++ exception detected at Sun Jul 09 19:06:28 2017 ------------------------------------------------------------------------ Configuration: Crash Decoding : Disabled Crash Mode : continue (default) Default Encoding : GBK Host Name : ASUS-PC MATLAB Architecture : win64 MATLAB Root : D:\MATLAB MATLAB Version : 9.0.0.341360 (R2016a) Operating System : Microsoft Windows 8.1 中文版 Processor ID : x86 Family 6 Model 60 Stepping 3, GenuineIntel Virtual Machine : Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode Window System : Version 6.3 (Build 9600) Fault Count: 1 Abnormal termination: Unhandled C++ exception Register State (from fault): RAX = 0000000007c980f8 RBX = 00000000fd90c880 RCX = 000000000adf6b10 RDX = 00000000fd66b79e RSP = 000000000ee1f900 RBP = 000000000ee1fa40 RSI = 000000000ee1fcc0 RDI = 000000000ee1fa70 R8 = 00000000fd683db9 R9 = 000000000000007f R10 = 0000000000000083 R11 = 000000000adf7310 R12 = 0000000000000000 R13 = 0000000000000000 R14 = 000000000ee1fea0 R15 = 0000000000000000 RIP = 00007ffd834195fc EFL = 00000206 CS = 0033 FS = 0053 GS = 002b Stack Trace (from fault): [ 0] 0x00007ffd834195fc C:\Windows\system32\KERNELBASE.dll+00038396 RaiseException+00000108 [ 1] 0x00007ffd716bef63 D:\MATLAB\bin\win64\MSVCR120.dll+00388963 CxxThrowException+00000179 [ 2] 0x00000000fd62549c D:\MATLAB\bin\win64\mlutil.dll+00087196 cmddistributor::RuntimeException::rethrow+00000044 [ 3] 0x0000000005e128de D:\MATLAB\bin\win64\MVMLocal.dll+00141534 mvm_server::inproc::LocalMVM::terminate+00001566 [ 4] 0x0000000005e15fef D:\MATLAB\bin\win64\MVMLocal.dll+00155631 mvm_server::inproc::LocalFactory::findMVM+00000287 [ 5] 0x0000000005e26b0a D:\MATLAB\bin\win64\MVMLocal.dll+00224010 mvm_server::inproc::LocalFactory::terminate+00060762 [ 6] 0x0000000005e262fd D:\MATLAB\bin\win64\MVMLocal.dll+00221949 mvm_server::inproc::LocalFactory::terminate+00058701 [ 7] 0x0000000005e2a2be D:\MATLAB\bin\win64\MVMLocal.dll+00238270 mvm_server::inproc::LocalFactory::terminate+00075022 [ 8] 0x00007ffd72e5b903 D:\MATLAB\bin\win64\boost_thread-vc120-mt-1_56.dll+00047363 boost::thread::swap+00000083 [ 9] 0x00007ffd71684f7f D:\MATLAB\bin\win64\MSVCR120.dll+00151423 beginthreadex+00000263 [ 10] 0x00007ffd71685126 D:\MATLAB\bin\win64\MSVCR120.dll+00151846 endthreadex+00000402 [ 11] 0x00007ffd857013d2 C:\Windows\system32\KERNEL32.DLL+00005074 BaseThreadInitThunk+00000034 [ 12] 0x00007ffd862354e4 C:\Windows\SYSTEM32\ntdll.dll+00087268 RtlUserThreadStart+00000052 If this problem is reproducible, please submit a Service Request via: http://www.mathworks.com/support/contact_us/ A technical support engineer might contact you with further information. Thank you for your help.
visual c# 和access的 运行没错误,但是调试了运行没反应 button2
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; namespace 专科医院门诊系统_眼科_ { public partial class 挂号界面 : Form { public 挂号界面() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { 挂号缴费选择界面 frm = new 挂号缴费选择界面(); frm.Show(); Hide(); } private void button2_Click(object sender, EventArgs e) { string a = textBox1 .Text ; string b = textBox2 .Text ; string c = textBox3 .Text ; string d = textBox4 .Text ; string f = textBox5 .Text ; string g = textBox6 .Text ; OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\design\vc\project\专科医院门诊系统(眼科)\db1.accdb"; conn.Open(); string str = "insert into patient ([ID],名字,年龄,性别,电话号码,科室) values (('" + a + "','" + b + "','" + c + "','" + d + "','" + f + "','" + g + "')"; OleDbCommand cmd=new OleDbCommand(); cmd.Connection=conn; cmd.CommandText=str; cmd.ExecuteNonQuery(); cmd.Dispose(); conn.Close(); conn.Dispose(); MessageBox.Show("挂号成功"); } private void button3_Click(object sender, EventArgs e) { textBox1.Text = textBox2.Text = textBox3.Text = textBox4.Text = textBox5.Text = string.Empty; } private void 挂号界面_Load(object sender, EventArgs e) { } } } 难道是数据库连接或者 insert 语句错误吗? 求大神帮忙看下,帮我改下,小弟实在是小白啊
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队译者 | 凯隐编辑 | Jane出品 | AI科技大本营(ID:rgznai100)本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知说话者数秒的音频来合成其讲话音频,即网
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
【管理系统课程设计】美少女手把手教你后台管理
【后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 一、这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,
4G EPS 第四代移动通信系统
目录 文章目录目录4G EPSEPS 的架构EPS 的参考模型E-UTRANUEeNodeBEPCMME(移动性控制处理单元)S-GW(E-RAB 无线访问承载接入点)P-GW(PDN 接入点)HSS(用户认证中心)PCRF(计费规则与策略)SPR(用户档案)OCS(在线计费)OFCS(离线计费)接口类型Uu 接口(空中接口,UE 和 AN 之间)S1 接口(AN 和 CN 之间)S1-U 接口和
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问