VS2013新建DLL项目,随便导出一个函数,引用时提示error LINK2019,找不到该函数

新建项目时“应用程序设置”里选择“导出符号”vs会自己导出一个变量和一个函数,我在另一个工程里引用VS导出的变量和函数都没有问题。
引用我自己导出的那个函数就是不行???

//头文件:ConsoleApplication1.h

#ifdef CONSOLEAPPLICATION1_EXPORTS
#define CONSOLEAPPLICATION1_API __declspec(dllexport)
#else
#define CONSOLEAPPLICATION1_API __declspec(dllimport)
#endif
//这是VS自己导出的函数声明
CONSOLEAPPLICATION1_API    int    fnConsoleApplication1(void);
//这是我的导出函数声明
CONSOLEAPPLICATION1_API    int    fnAddTwo(int a,int b);

//CPP文件:ConsoleApplication1.cpp

// 这是VS导出示例函数的实现。调用这个函数没有问题
CONSOLEAPPLICATION1_API  int    fnConsoleApplication1(void)
{
    return 42;
}
//这是我导出函数的实现,调用提示无法解析符号
CONSOLEAPPLICATION1_API    int    fnAddTow(int a, int b) 
{
    return a + b;
}
//END 

然后我自己新建一个空白工程:

 #include "ConsoleApplication1.h"     //已加入工程目录
#pragma comment(lib,"ConsoleApplication1.lib")   //这个也加入库目录
#include <iostream>
int main() {
    int a = 1, b = 2;
        //调用我导出的函数,提示链接错误,注释掉就链接成功
    std::cout << "fnAddTwo(1, 2) = " << fnAddTwo(a, b) << std::endl;
        //调用VS自己导出的函数没问题
    std::cout << fnConsoleApplication1() << std::endl;
    return 0;
}
//END

错误提示:
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) int cdecl fnAddTwo(int,int)" (imp_?fnAddTwo@@YAHHH@Z),该符号在函数 _main 中被引用
1>e:\my documents\visual studio 2013\Projects\Project1\Debug\Project1.exe : fatal error LNK1120: 1 个无法解析的外部命令

1个回答

哎,写代码不细心害死人,函数声明时写成fnAddTwo,而在实现时函数名就是fnAddTow了,我去~编译居然也不报错。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
node项目运行后提示错误信息ERR_HTTP_INVALID_HEADER_VALUE
我在运行node项目时提示运行错误 ``` D:\hichat>node app.js server on *:3000 _http_outgoing.js:475 throw new ERR_HTTP_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "Content-Type" at storeHeader (_http_outgoing.js:432:5) at processHeader (_http_outgoing.js:427:3) at ServerResponse._storeHeader (_http_outgoing.js:332:11) at ServerResponse.writeHead (_http_server.js:303:8) at D:\hichat\modules\StaticService.js:30:8 at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3) { code: 'ERR_HTTP_INVALID_HEADER_VALUE' } ``` 网上找了很多,都没有找到相应的方法和出现的原因 ``` StaticService.js var fs = require("fs"),//内部模块 处理文件操作 path =require("path"),//内部模块 处理路径操作 mime =require("./mime").types;//自定义模块请求处理文档类型操作 /** * 404 NOT FOUNT 函数 * @param {[type]} res [请求对象] */ function send404(res){ res.writeHead(404,{"Content-Type":"text/plain"}); res.end("404 not found"); } /** * 静态文件请求函数 * @param {[type]} realpath [绝对路径] * @param {[type]} res [服务器请求对象] */ function staticServer(realpath,res){ fs.readFile(realpath,function(err,data){ if(!err){ var extname=path.extname(realpath); res.writeHead(200,{"Content-Type":mime[extname]}); //这行报错 res.end(data); }else{ send404(res); } }); } /** * 静态服务器主入口模块 * @param {[type]} pathname [请求路径名称] * @param {[type]} res [请求对象] * @param {[type]} base_dir [根目录] */ exports.staticRender=function(pathname,res,base_dir){ var reg = /^\/static|upload/;//目录匹配 if(reg.test(pathname)){ fs.exists(path.join(base_dir,pathname),function(exists){ if(exists){ staticServer(path.join(base_dir,pathname),res) }else{ send404(res); } }) }else{ send404(res); } } ``` ``` /** * title hichat聊天室 文件mime类型对象 */ exports.types = { '.hqx':'application/mac-binhex40', '.cpt':'application/mac-compactpro', '.csv':['text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'], '.bin':'application/macbinary', '.dms':'application/octet-stream', '.lha':'application/octet-stream', '.lzh':'application/octet-stream', '.exe':['application/octet-stream', 'application/x-msdownload'], '.class':'application/octet-stream', '.psd':'application/x-photoshop', '.so':'application/octet-stream', '.sea':'application/octet-stream', '.dll':'application/octet-stream', '.oda':'application/oda', '.pdf':['application/pdf', 'application/x-download'], '.ai':'application/postscript', '.eps':'application/postscript', '.ps':'application/postscript', '.smi':'application/smil', '.smil':'application/smil', '.mif':'application/vnd.mif', '.xls':['application/excel', 'application/vnd.ms-excel', 'application/msexcel'], '.ppt':['application/powerpoint', 'application/vnd.ms-powerpoint'], '.wbxml':'application/wbxml', '.wmlc':'application/wmlc', '.dcr':'application/x-director', '.dir':'application/x-director', '.dxr':'application/x-director', '.dvi':'application/x-dvi', '.gtar':'application/x-gtar', '.gz':'application/x-gzip', '.php':'application/x-httpd-php', '.php4':'application/x-httpd-php', '.php3':'application/x-httpd-php', '.phtml':'application/x-httpd-php', '.phps':'application/x-httpd-php-source', '.js':'application/x-javascript', '.swf':'application/x-shockwave-flash', '.sit':'application/x-stuffit', '.tar':'application/x-tar', '.tgz':['application/x-tar', 'application/x-gzip-compressed'], '.xhtml':'application/xhtml+xml', '.xht':'application/xhtml+xml', '.zip':['application/x-zip', 'application/zip', 'application/x-zip-compressed'], '.mid':'audio/midi', '.midi':'audio/midi', '.mpga':'audio/mpeg', '.mp2':'audio/mpeg', '.mp3':['audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'], '.aif':'audio/x-aiff', '.aiff':'audio/x-aiff', '.aifc':'audio/x-aiff', '.ram':'audio/x-pn-realaudio', '.rm':'audio/x-pn-realaudio', '.rpm':'audio/x-pn-realaudio-plugin', '.ra':'audio/x-realaudio', '.rv':'video/vnd.rn-realvideo', '.wav':['audio/x-wav', 'audio/wave', 'audio/wav'], '.bmp':['image/bmp', 'image/x-windows-bmp'], '.gif':'image/gif', '.jpeg':['image/jpeg', 'image/pjpeg'], '.jpg':['image/jpeg', 'image/pjpeg'], '.jpe':['image/jpeg', 'image/pjpeg'], '.png':['image/png', 'image/x-png'], '.tiff':'image/tiff', '.tif':'image/tiff', '.css':'text/css', '.html':'text/html', '.htm':'text/html', '.shtml':'text/html', '.txt':'text/plain', '.text':'text/plain', '.log':['text/plain', 'text/x-log'], '.rtx':'text/richtext', '.rtf':'text/rtf', '.xml':'text/xml', '.xsl':'text/xml', '.mpeg':'video/mpeg', '.mpg':'video/mpeg', '.mpe':'video/mpeg', '.qt':'video/quicktime', '.mov':'video/quicktime', '.avi':'video/x-msvideo', '.movie':'video/x-sgi-movie', '.doc':'application/msword', '.docx':['application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'], '.xlsx':['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'], '.word':['application/msword', 'application/octet-stream'], '.xl':'application/excel', '.eml':'message/rfc822', '.json':['application/json', 'text/json'] }; ```
用socket写蓝牙通信的时候遇到accept不阻塞的情况
## socket中accept不阻塞的问题,网上的方法不起作用 最近比赛需要,要用到蓝牙通信。我打算用套接字实现,但是在写套接字的程序的时候,accept总是不阻塞,检查发现错误码10014,但是长度也没问题,实在不知道怎么回事了。时间比较急,那位大神懂行的还请帮忙指点一下,感激不尽! ``` #include <iostream> #include <cstring> #include <winsock2.h> #pragma comment(lib,"Ws2_32.lib") #include <ws2bth.h> #include <bthsdpdef.h> #include <bluetoothapis.h> #pragma comment(lib, "bthprops.lib") int main() { WSADATA wsaData; int err = WSAStartup(MAKEWORD(2, 2), &wsaData) ; std::cout <<"startup return: " << err << std::endl; SOCKET sock = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); if (sock == SOCKET_ERROR) { std::cout << "sock define error !" << std::endl; } SOCKADDR_BTH bt_addr; bt_addr.addressFamily = AF_BTH; bt_addr.port = BT_PORT_ANY; bt_addr.btAddr = 0; bt_addr.serviceClassId = GUID_NULL; std::cout << WSAGetLastError() << std::endl; err = ::bind(sock, (sockaddr*)&bt_addr, sizeof(bt_addr)); std::cout << WSAGetLastError() << std::endl; std::cout << "bind return :" <<err<< std::endl; int l = sizeof(bt_addr); std::cout <<"get sockname return: "<< getsockname(sock, (sockaddr*)&bt_addr, &l) << std::endl; err = listen(sock, 1); std::cout << "lis_return: " << err << std::endl; SOCKADDR clntAddr; int l1 = sizeof(SOCKADDR);; std::cout << l1 << std::endl; SOCKET clntSock = accept(sock, (SOCKADDR*)&clntAddr, &l1); if (err = WSAGetLastError()) { std::cout << "阻塞出错。" << std::endl; std::cout << "错误码:" << err << std::endl; } closesocket(clntSock); closesocket(sock); WSACleanup(); return 0; } ```
请问如何用linux套接字编程来发挥万兆网卡的性能?
双线程,一个生产数据放入kfifo,一个从kfifo取出数据,通过套接字发送。最终测试出来速度只能达到400MB/S。(kfifo出队64KB数据要100us) 之后我将生产者做了更改,让它只更新队首的in指针,不做数据拷贝,此时速度能达到1000MB/S。(kfifo出队64KB数据只要10us) 我怀疑是生产者生产数据写入队列时,导致消费者所在的cpu cache失效,然后cache未命中导致速度骤降。但是不知道怎么解决这个问题。 在网上搜索答案,但是没有找到类似情况。看到有一个和我问题应该比较类似的,但是没有找到解决方法。 《请问为何tcp send第一次时很慢, 第二次时很快呢?》 https://www.oschina.net/question/2897213_2193602 ```c #include "szg_common.h" #include "szg_kfifo.h" #include "szg_socket.h" /**kfifo * 队列是将linux内核中的kfifo移到了这里来用,用malloc来替代内核中的kmalloc * 此代码(发送端)运行在NXP T4240上,系统linux,万兆网卡。 * 接收端软件运行在PC上,系统windows10,万兆网卡。 * * 1.正常出入队,kfifo总大小64M 元素大小256bytes 期望出队和期望入队都是256个元素 * 速度400MB/S 出队64k要100us send要50us * 2.注释掉kfifoin中的两行memcpy(szgKfifoCopyIn中的),让其只更新队首in指针 * 速度1000MB/S 出队64k要10us send要50us * * */ #define KFIFO_SEND_SIZE 0x10000 //64k #define FIFO_IN 0x100 //每次入队时期望入队的元素个数:256个(即256*256 = 64k) #define FIFO_OUT 0x100 //每次出队时期望出队的元素个数:256个(即256*256 = 64k) #define FIFO_E_SIZE 0x100 //元素大小:256byte #define FIFO_SIZE 0x4000000 //总大小:64Mbyte (256*256*1024个) kfifo testkFifo; void *szgTestKfifoThread(void *param) { UINT32 ret; char data_buf[KFIFO_SEND_SIZE] = {0}; while(TRUE) { ret = szgKfifoIn(&testkFifo,data_buf,FIFO_IN); if(ret == 0) { pthread_yield(); //usleep(2); } } } int kfifo_test(void) { INT32 listenFd; INT32 connectFd; INT32 ret; UINT32 clientIp; pthread_t threadId; pthread_attr_t attr; struct timeval start,end; char send_buf[KFIFO_SEND_SIZE]; memset(send_buf,1,KFIFO_SEND_SIZE); signal(SIGPIPE,SIG_IGN); /** * 初始化kfifo * 总大小 64M * 元素大小 256byes * 元素个数 256*1024个 * 出队,入队都是期望256个元素,不到256个有多少出多少,实际个数作为返回值返回 */ ret = szgKfifoAlloc(&testFifo,FIFO_SIZE/FIFO_E_SIZE,FIFO_E_SIZE); CHECK_EXIT(ret == ERROR, "fifo init err!"); /*创建线程,线程分离*/ pthread_attr_init (&attr); pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); if (0 != pthread_create(&threadId,&attr, (void *)szgTestKfifoThread,NULL)) { SZG_LOG(SZG_LOG_ERR,"Create Thread data_filter_thread Fail \n"); return ERROR; } /*服务器初始化 端口6101 发送缓存2M 接收缓存1M(2M/2)*/ listenFd = szgSockInit(NULL,6101,0x200000); CHECK_EXIT(listenFd < 0, "socket error"); while(TRUE) { printf("wait connect\n"); /*客户端ip通过&clientIp返回(其实下面没用到)*/ connectFd = szgSockAccept(listenFd,&clientIp); if (connectFd < 0) { SZG_LOG(SZG_LOG_ERR,"server Accept Failed!/n"); return 0; } while(TRUE) { //gettimeofday(&start,NULL); /*出队 256*256 */ ret = szgKfifoOut(&testkFifo,send_buf,FIFO_OUT); if(ret == 0)//没有数据 { pthread_yield(); continue; //usleep(2); } //gettimeofday(&end,NULL); //printf("kfifo time %lu us \n",(1000000*(end.tv_sec-start.tv_sec) + (end.tv_usec-start.tv_usec))); /*发送64k*/ //gettimeofday(&start,NULL); ret = szgSendData(connectFd,send_buf,ret*FIFO_E_SIZE); if(ret == ERROR) { SZG_LOG(SZG_LOG_ERR,"szgSendData data error\n"); break; } //gettimeofday(&end,NULL); //printf("send time %lu us \n",(1000000*(end.tv_sec-start.tv_sec) + (end.tv_usec-start.tv_usec))); } } return 0; } ```
用freetype转换字符串成位图数据问题?
这是我的转化代码,转换出来的效果图: ![图片说明](https://img-ask.csdn.net/upload/202001/22/1579661860_266102.png) 我是转换一个字符串:HELLO,但是为什么最后成了两个,而且宽和高似乎都给成了两倍,以下是代码,请大神分析下下面的代码有问题吗?如何修改 ``` static int GetBitmap( char* szFontFile, wchar_t* swText, int ulLen, int nFontSize, int nSpace, BITMAP_S *stBitmap) { FT_Library ftLib = NULL; FT_Face ftFace = NULL; FT_Error ftError = 0; FT_Bitmap ftBitmap; FT_BitmapGlyph ftBmpGlyph; FT_Glyph ftGlyph; FT_GlyphSlot ftGlyphslot; int i, j, k, temp; int start_x = 0, start_y = 0; int nChHeight = 0, nChWidth = 0, nTextWidth = 0; size_t size = 0; unsigned char** pTextAlpha = NULL; int BgHeight = nFontSize + 5; /* 背景图形的高度,这个高度要大于字体的高度,所以是+5 */ ftError = FT_Init_FreeType(&ftLib); if (ftError) { printf("FT_Init_FreeType() Failed!\n"); ftLib = 0; return -1; } printf("========fontfile=%s\n", szFontFile); ftError = FT_New_Face(ftLib, szFontFile, 0, &ftFace); /*if (ftError == FT_Err_Unknown_File_Format) { printf("FT_New_Face() Failed! FT_Err_Unknown_File_Format\n"); return -2; } else */if (ftError) { printf("FT_New_Face() Failed %d! Other Error!\n", ftError); return -3; } pTextAlpha = (uint8_t**)malloc(sizeof(uint8_t*)*BgHeight); //分配内存,用于存储字体背景的数据 if (NULL == pTextAlpha) { printf("malloc() Failed!\n"); return -1; } for (i=0; i < BgHeight; i++) { pTextAlpha[i] = (uint8_t*)malloc(sizeof(uint8_t)*1); //为背景图的每一行分配内存 if (NULL == pTextAlpha[i]) { printf("malloc() Failed! %d\n", i); return -1; } } ftError = FT_Select_Charmap(ftFace, FT_ENCODING_UNICODE); //设置字体的编码方式 if (ftError) { printf("FT_Select_Charmap() Failed! error=%d\n", ftError); return ftError; } ftError = FT_Set_Pixel_Sizes(ftFace, 0, nFontSize); //设置字体大小 if (ftError) { printf("FT_Set_Pixel_Sizes() Failed! error=%d\n",ftError); return ftError; } uint8_t *data; ftGlyphslot = ftFace->glyph; printf("======================ulen = %d\n", ulLen); for (temp = 0; temp < ulLen; temp++) { printf("#######################swText[%d]=%04x\n", temp,swText[temp]); ftError = FT_Load_Char(ftFace, swText[temp], FT_LOAD_RENDER | FT_LOAD_NO_AUTOHINT);//提取一个字形图像 if (ftError) { printf("FT_Load_Char() Failed!, ftError=%d\n", ftError); continue; } ftError = FT_Get_Glyph(ftFace->glyph, &ftGlyph); if (ftError) { printf("FT_Get_Glyph() Failed!"); return ftError; } if (swText[temp] == L' ')//如果取得的为空格 { printf("M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M\n"); k = 0; nChWidth = (nFontSize - 2) / 2; nChHeight = nFontSize; nTextWidth = start_x + nChWidth; start_y = 0; for (i = 0; i < BgHeight; i++) { pTextAlpha[i] = (uint8_t*)realloc(pTextAlpha[i], sizeof(uint8_t)*nTextWidth); memset(pTextAlpha[i], 0 ,sizeof(uint8_t)*nTextWidth); for (j = start_x - nSpace; j < nTextWidth; j++) { pTextAlpha[i][j] = 0; } } for (i = 0; i < nChHeight; i++) { for (j=0; j< nChWidth; j++) { pTextAlpha[start_y+i][start_x+j] = 0; k++; } } start_x += (nChWidth + nSpace); /* 画笔向右边移动 */ } else { /* 256级灰度字形转换成位图 */ ftError = FT_Glyph_To_Bitmap(&ftGlyph, FT_RENDER_MODE_NORMAL , NULL, 1); if (ftError) { printf("FT_Glyph_To_Bitmap() Failed!\n"); } ftBmpGlyph = (FT_BitmapGlyph)ftGlyph; ftBitmap = ftBmpGlyph->bitmap; k = 0; printf("XXXXXXXXXX:nFontSize = %d, bitmap_top = %d\n", nFontSize, ftGlyphslot->bitmap_top); printf("XXXXXXXXXX:ftBitmap.rows = %d, BgHeight = %d\n", ftBitmap.rows, BgHeight); start_y = nFontSize - ftGlyphslot->bitmap_top + 2; /* 获取起点的y轴坐标 */ //start_y = nFontSize - ftBitmap.rows + 2; if(start_y < 0) { start_y = 0; } if (ftBitmap.rows > BgHeight) { nChHeight = nFontSize; } else { nChHeight = ftBitmap.rows; } if (nChHeight + start_y > BgHeight) { nChHeight = BgHeight - start_y; } nChWidth = ftBitmap.width; nTextWidth = start_x + ftBitmap.width; printf("XXXXXXXXXX:nChHeight = %d, nChWidth = %d, nTextWidth = %d\n",nChHeight, nChWidth, nTextWidth); for (i=0; i<BgHeight; i++) { pTextAlpha[i] = (uint8_t*)realloc(pTextAlpha[i], nTextWidth); for (j = start_x - nSpace; j < nTextWidth; j++) { if(j < 0) j = 0; pTextAlpha[i][j] = 0; } } for (i = 0; i < BgHeight; i++) { for (j = 0; j < nChWidth; j++) { if (i >= start_y && i < start_y + nChHeight) { pTextAlpha[i][start_x + j] = ftBitmap.buffer[k]; k++; } else { pTextAlpha[i][start_x + j] = 0; } } } start_x += (nChWidth + nSpace); FT_Done_Glyph(ftGlyph); printf("FT_Done_Glyph() Success!\n"); ftGlyph = NULL; } } FT_Done_Face(ftFace); ftFace = NULL; FT_Done_FreeType(ftLib); ftLib = NULL; stBitmap->u32Width = nTextWidth; stBitmap->u32Height = BgHeight; size = sizeof(uint8_t) * nTextWidth * BgHeight; stBitmap->pData = (uint8_t*)malloc(size); memset(stBitmap->pData, 0, size); printf("===================nTextWidth = %d\n", nTextWidth); printf("===================BgHeight = %d\n", BgHeight); printf("===================nChHeight = %d\n", nChHeight); k = 0; for (i = 0; i < BgHeight; i++) { memcpy(((char*)stBitmap->pData) + k, pTextAlpha[i], nTextWidth); k += nTextWidth; free(pTextAlpha[i]); pTextAlpha[i] = NULL; } free(pTextAlpha); pTextAlpha = NULL; return 0; } ```
npm start : npm ERR! code ELIFECYCLE
npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! DYWL@0.0.3 start: `node node_modules/react-native/local-cli/cli.js start` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the DYWL@0.0.3 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! E:\software\Node\node_cache\_logs\2019-11-28T05_26_03_049Z-debug.log 运行npm start 报错 按照网上找到的资料 卸载完之后重新安装还是不行 请各路大神赐教.![图片说明](https://img-ask.csdn.net/upload/201911/28/1574919020_342811.png)
Unexpected CUDA error: invalid argument
我在使用tensorflow-gpu时,运行如下的代码: ``` import tensorflow as tf a = tf.constant([1.0,2.0,3.0],shape = [3],name='a') print(a) ``` 能正确显示 ``tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32)`` 但当我加入以下两行代码 ``` b = tf.constant([1.0,2.0,3.0], shape = [3],name='b') a+b ``` 会报如下的错误 ``` F tensorflow/stream_executor/cuda/cuda_driver.cc:209] Check failed: err == cudaSuccess || err == cudaErrorInvalidValue Unexpected CUDA error: invalid argument ``` 请大神帮忙解答 ================================================ 参照这篇博客,重新安装了一下,问题已经解决了 [https://blog.csdn.net/weixin_43411129/article/details/101390407](https://blog.csdn.net/weixin_43411129/article/details/101390407)
c# vs2017 关于周立波的can分析仪 二次开发 大佬救我
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { uint m_devtype = 4;//设备类型号 uint m_devind = 0;//设备索引号 int m_canid = 0;//can口ID ///5.定义初始化CAN的数据类型 struct VCI_INIT_CONFIG { public int AccCode; public int AccMask; public int Reserved; public int Filter; public int Timing0; public int Timing1; public int Mode; } ///2.定义CAN信息帧的数据类型。 struct VCI_CAN_OBJ { public uint ID; public uint TimeStamp; public byte TimeFlag; public byte SendType; public byte RemoteFlag;//是否是远程帧 public byte ExternFlag;//是否是扩展帧 public byte DataLen; public byte []Data; ///Data[8] public byte []Reserved; //Reserved[0] 第0位表示特殊的空行或者高亮帧 Reserved[3] } ///4.定义错误信息的数据类型。 struct VCI_ERR_INFO { public uint ErrCode; public byte []Passive_ErrData;/// Passive_ErrData[3] public byte ArLost_ErrData; } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { VCI_INIT_CONFIG InitConfig = new VCI_INIT_CONFIG(); /* InitConfig.AccCode = 00; InitConfig.AccMask = -1; InitConfig.Filter = 1; InitConfig.Reserved = 0; InitConfig.Mode = 0; InitConfig.Timing0 = 0;//测试.... InitConfig.Timing1 = 20; */ uint a = VCI_CloseDevice(m_devtype, m_devind);//调用DLL uint b = VCI_OpenDevice(m_devtype, m_devind, 0); if (b != 1)//reserverd { MessageBox.Show("打开设备错误" ); return; } if (VCI_InitCAN(3, 0, 0, ref InitConfig) == 1)//canid { if (VCI_StartCAN(3, 0, 0) == 1)//canid { /* VCI_CAN_OBJ vio = new VCI_CAN_OBJ(); vio.DataLen = 8; vio.ExternFlag = 0; vio.RemoteFlag = 0; vio.SendType = 2; vio.ID = 1; vio.data0 = (byte)11; vio.data1 = (byte)11; vio.data2 = (byte)11; vio.data3 = (byte)11; vio.data4 = (byte)11; vio.data5 = (byte)11; vio.data6 = (byte)11; vio.data7 = (byte)11; vio.Reserved0 = 0; vio.Reserved1 = 0; vio.Reserved2 = 0; int smap = VCI_Transmit(3, 0, 0, ref vio, 1); MessageBox.Show(smap.ToString()); */ } } else { MessageBox.Show("初始化错误"); return; } } [DllImport("ControlCAN.dll")] static extern uint VCI_OpenDevice(uint DevType, uint DevIndex, uint Reserved);//Reserved系统保留字段 [DllImport("ControlCAN.dll")] static extern uint VCI_CloseDevice(uint DevType, uint DevIndex); [DllImport("ControlCAN.dll")] static extern int VCI_InitCAN(int Devicetype, int DeviceInd, int CANInd, ref VCI_INIT_CONFIG InitConfig);//初始化指定CAN [DllImport("ControlCAN.dll")] static extern int VCI_StartCAN(int Devicetype, int DeviceInd, int CANInd);//启动CAN [DllImport("ControlCAN.dll")] static extern int VCI_ResetCAN(int Devicetype, int DeviceInd, int CANInd);//复位CAN [DllImport("ControlCAN.dll")] static extern int VCI_Transmit(int Devicetype, int DeviceInd, int CANInd, ref VCI_CAN_OBJ vio, int length);//发送数据 [DllImport("ControlCAN.dll")] static extern int VCI_ReadErrInfo(int Devicetype, int DeviceInd, int CANInd, ref VCI_ERR_INFO errinfo);//接收最后1条错误信息 [DllImport("ControlCAN.dll")] static extern int VCI_Receive(int Devicetype, int DeviceInd, int CANInd, ref VCI_CAN_OBJ vri, int length, int WaitTime);//接收信息 } } 设备打开那边就出错了,有大佬知道为啥吗 ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578469705_478201.png)
导入javascript模块后浏览器报错:net::ERR_ABORTED 404 (Not Found)
AFlowView.js: ``` export default class AFlowView extends HTMLElement { // ... } ``` index.html: ``` <script type="module" src="./core/AFlowView.js"></script> ``` 运行时报错: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578066093_573593.jpg)
Navicat for Oracle 创建执行计划 执行存储过程报错
**Navicat for Oracle 创建执行计划 执行存储过程报错** 当创建执行计划时: --自动执行*1小时 ``` Declare jobno Number; Begin dbms_job.submit(:jobno,'ur_procedure;',Sysdate,'sysdate+1/24'); commit; end; ``` 提示 > [Err] ORA-01008: 并非所有变量都已绑定 还有网上有说计划名称前不加:(冒号)的,但依旧报错 > > [Err] ORA-04063: package body "SYS.DBMS_INTERNAL_LOGSTDBY" 有错误 > ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_INTERNAL_LOGSTDBY" 的程序单元 > ORA-06512: 在 "SYS.DBMS_JOB", line 126 > ORA-06512: 在 line 4 > 用的Navicat for Oracle 但搜的的创建执行计划只有上边的那种, 新手,求大神指点,谢谢
运行Vue项目时,报错npm ERR! errno 1 npm ERR! Failed at the single@1.0.0 dev script.
运行Vue项目时,报错,不清楚是哪里出了问题 ``` Error: Cannot find module 'webpack-cli/bin/config-yargs' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.js:562:25) at Module.require (internal/modules/cjs/loader.js:690:17) at require (internal/modules/cjs/helpers.js:25:18) at Object.<anonymous> (E:\HBuilderProjects\Vue\single\node_modules\_webpack-dev-server@3.7.1@webpack-dev-server\bin\webpack-dev-server.js:60:1) at Module._compile (internal/modules/cjs/loader.js:776:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! single@1.0.0 dev: `webpack-dev-server --open --hot --port 8020` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the single@1.0.0 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\asus\AppData\Roaming\npm-cache\_logs\2019-06-15T16_43_01_654Z-debug.log ``` ``` ``` 这个是package.json文件 ``` { "name": "single", "version": "1.0.0", "description": "", "main": "main.js", "scripts": { "dev": "webpack-dev-server --open --hot --port 8020" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "vue": "^2.6.10" }, "devDependencies": { "babel-core": "^6.26.3", "babel-loader": "^8.0.6", "babel-preset-env": "^1.7.0", "css-loader": "^3.0.0", "file-loader": "^4.0.0", "vue-html-loader": "^1.2.4", "vue-loader": "^15.7.0", "vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.6.10", "webpack": "^4.34.0", "webpack-dev-server": "^3.7.1" } } ```
谷歌浏览器报错net::ERR_HTTP2_PROTOCOL_ERROR 200
环境:php+nginx 织梦 目标:动态输出信息,批量替换数据库字段中关键字 本地测试没有任何问题 贴到服务器上就报错 php代码如下 ``` header('X-Accel-Buffering: no');// 关闭加速缓冲 nginx header('Max-Forwards: 3000');// 关闭加速缓冲 nginx set_time_limit(0); // 引入织梦函数 require_once("../include/common.inc.php"); // var_dump($_POST);die; $validate = empty($validate) ? '' : strtolower($validate); $svali = GetCkVdValue(); if ($validate == "" || $validate != $svali) { ShowMsg("安全确认码不正确!", "javascript:;"); exit(); } if (ob_get_level() == 0) //判断缓冲区等级,如果没有活动缓冲区 ob_start(); //打开缓冲区 //判断表是否存在 // 关键字 $arrss = explode("\r\n", $_POST['keyys']); foreach ($arrss as $k => $v) { $va = explode(' ', $v); $txts[$va[0]] = $va[1]; } $num_t = count($txts); $nu = 0; $nu2 = 0; $nu3 = 0; $timeSjc = time(); // 创建文件 $fileNameq = "./download/".date(time().rand(1000,9999)); $myfile = fopen($fileNameq.".txt", "a") or die("无法打开文件!"); foreach ($txts as $k => $v) { ob_flush(); //发送缓冲区数据 flush(); //刷新缓冲区 $condition = empty($condition) ? '' : " WHERE $condition "; $dsql1 = "select aid from $exptable where $rpfield like '%{$k}%'"; $db->SetQuery($dsql1); $db->Execute(); while ($arr = $db->GetArray()) { $link = GetOneArchive($arr['aid']); $arcurl = $link['arcurl']; $mmsg = '“'.$k.'”替换“'.$v . '”-' . $arcurl . "\r\n"; fwrite($myfile, $mmsg); } $rs = $dsql->ExecuteNoneQuery2("UPDATE $exptable SET $rpfield=REPLACE($rpfield,'$k','$v') $condition "); $nu++; $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`"); if ($rs) { $nu2++; $nurl = "article_keywords_make.php?dopost=fetch&totalnum=$totalnum&startdd=".($startdd+$pagesize)."&pagesize=$pagesize"; ShowMsg2($nu . "/" . $num_t . "“" . $k . "”替換“" . $v . "”已完成!", "javascript:;"); } else { $nu3++; ShowMsg2($nu . "/" . $num_t . "“" . $k . "”替換“" . $v . "”未找到鍵字!", "javascript:;"); } } $sj = time()-$timeSjc; ShowMsg2("共查找".$num_t."个关键词<br>".$nu2 ."个关键字替換成功<br>" . $nu3 . "个关键字没有找到<br>共花费时间 ".$sj." 秒<br><a id='download1' download='".$fileNameq.".txt' href='".$fileNameq.".txt'>点击这里下载以替换的链接</a>", "javascript:;"); fclose($myfile); ``` nginx超时全部都为300 ![图片说明](https://img-ask.csdn.net/upload/201911/29/1575015725_990597.png) 报错图片 ![图片说明](https://img-ask.csdn.net/upload/201911/29/1575015925_492610.png) **运行到1.7-1.8分钟自动停止** 请大神帮助
PLC TCP通信报错10061
电脑通过网口连接三菱PLC,可以ping的通,但用以下代码就一直报10061的错误: ``` int main() { // initialize winsock WORD wVer = MAKEWORD(1, 1); // version NO:1.1, #include <WINSOCK.H> WSADATA wData; int err = WSAStartup(wVer, &wData); if (err) { printf("cannot initialize WinSock\n"); return 1; } // 建立SOCKET通信 SOCKET s = 0; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in server; server.sin_family = AF_INET; server.sin_port = htons(1); // ASA standard port server.sin_addr.s_addr = inet_addr("192.168.3.250"); // 建立CONNECT连接 int i = connect(s, (sockaddr *)&server, sizeof(sockaddr_in)); if (i < 0) // #define SOCKET_ERROR (-1) { printf("connect - error %d\n", WSAGetLastError()); closesocket(s); WSACleanup(); return 1; } return 0; } ``` 运行到connect指令就会返回10061的错误码,在cmd里ping 192.168.3.250是没问题的,但是htons( )里的端口号我不能确定,也不知道三菱PLC有没有默认的端口号,试了很多,除了给0会报10049的错误外,其它都是报10061。 麻烦那位大神帮忙看一下,头大,试了一天了
【求教】使用pycharm编写python爬虫,连接不上本地MySQL服务器
#小白自学修炼中,在编写python爬虫时,需要连接上本地MySQL服务器,将爬取的内容存放。 求教问题描述>>> 问题: #pycharm编写的程序连接不上本地MySQL服务 ### 环境: * python3.6 * ide:pycharm * 本地mysql服务已开启。 mysql版本:5.7 ## 源代码: ``` # 导入开发包 from bs4 import BeautifulSoup as bs from urllib.request import urlopen import re import pymysql # 获得数据库的连接 connection = pymysql.connect( host='localhost', user='root', password='123456', db='baidu', charset='utf8mb4' ) try: # 获得会话指针 with connection.cursor() as cursor: # 创建sql语句 sql = "insert into urls ('urlname','urlhref') values (%s,%s)" # 向baiduurls表提交操作 cursor.execute(sql, ("1", "1")) # 提交操作 connection.commit() finally: connection.close() ``` ## ## 出现的问题 ``` Traceback (most recent call last): File "C:/Pycharm/pro_2020/百度百科爬虫/craw_url.py", line 12, in <module> db='baidu' raise exc pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (timed out)") ``` 无法连接本地mysql数据库,另外数据库我在第三方工具上创建了一个名为“baidu”的数据库;我在命令行下查询了,确实创建着有。只是在pycharm里连接不到本地MySQL。 ## 尝试过、并失败了的的方法 ``` 防火墙已关闭,依然连接失败; net start mysql MySQL服务器doc命令行尝试连接,依然连接失败; host = 127.0.0.1,依然连接失败; ``` 真心在线求各位老哥老姐教教弟弟,不胜感激!
java调用dll文件,调用失败# Problematic frame: # C [MSVCR100D.dll+0x7bbbc]
java使用jna.Native的方式调用dll文件,报错: ``` # Problematic frame: # C [MSVCR100D.dll+0x7bbbc] ``` 错误日志头: ``` # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6ba2bbbc, pid=14344, tid=0x0000312c # # JRE version: Java(TM) SE Runtime Environment (8.0_231-b11) (build 1.8.0_231-b11) # Java VM: Java HotSpot(TM) Client VM (25.231-b11 mixed mode windows-x86 ) # Problematic frame: # C [MSVCR100D.dll+0x7bbbc] # # Core dump written. Default location: E:\sboot\hs_err_pid14344.mdmp # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. ``` 主要错误: ``` Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j com.sun.jna.Native.invokePointer(JI[Ljava/lang/Object;)J+0 j com.sun.jna.Function.invokePointer(I[Ljava/lang/Object;)Lcom/sun/jna/Pointer;+6 j com.sun.jna.Function.invokeString(I[Ljava/lang/Object;Z)Ljava/lang/String;+3 j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+544 j com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214 j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341 j com.sun.proxy.$Proxy0.InterfaceFunc(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+76 j com.itliuyue.sboot.utils.CAlgorithmByTES.main([Ljava/lang/String;)V+41 v ~StubRoutines::call_stub ```
用executemany 可以正常插入中文,execute就会报错?
同时用用executemany 和execute 向数据库中插入一条包含中文的数据,用executemany 可以正常插入中文,execute就会报错。 报错内容为: pymysql.err.InternalError: (1054, "Unknown column '白胡子' in 'field list'") ? 用executemany写的代码: ``` add_sql = 'INSERT INTO account (id,Student_Name,grade,sex,achievement)VALUES(%s,%s,%s,%s,%s)' args = [(11,'白胡子',1,0,60)] add = cur.executemany(add_sql,args) ``` 可以正常运行,并且在数据库中可以添加一条数据。 然后是execute写的代码: ``` add_sql = 'INSERT INTO account (id,Student_Name,grade,sex,achievement)VALUES(%s,%s,%s,%s,%s)'%(12,'白胡子',1,0,59); add = cur.execute(add_sql) conn.commit() ``` 就报错了 pymysql.err.InternalError: (1054, "Unknown column '白胡子' in 'field list'") 没搞懂,哪位大佬有空告诉我哪里错误了? 网上查说是编码问题,我已经确认过 库、表是UTF-8,程序是 charset=utf8 ,没有问题的! 都是这样连接 ,用executemany就正常,execute 就报错,太奇怪了!!
求助WriteFileEx返回错误代码87的解决办法
异步存一个文件,程序相关代码: //初始化 OVERLAPPED Overlap[2] verlap[0].Offset = 0; Overlap[0].OffsetHigh = 0; //调用 WriteFileEx(theImagesFile_Info.Handle, InfoBuf[0], nBufBytes, &Overlap[0], IoCompletionRoutine); DWORD err=GetLastError(); //err=87; theImagesFile_Info.Handle:文件句柄,打断点是正确的,InfoBuf[0]为开辟的内存,显示内存分配成功,nBufBytes为要写入文件的字节数,IoCompletionRoutine为回调函数。有知道错误在哪吗?谢谢
GO语言打开文件失败,runtime error
打开文件直接失败了,是接受文件内容的变量空间不够嘛?这种情况不应该出现在打开文件时吧,大佬们,救救~ ``` import ( ... "github.com/tealeg/xlsx" ) func main() { ... xlFile, err := xlsx.OpenFile(file.Name()) if err != nil { fmt.Printf("open file: %s --> failed: %s\n", file.Name(), err) } ``` ``` open file: test.xlsx --> failed: runtime error: index out of range [63] with length 0 panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x30 pc=0x51d3db] goroutine 1 [running]: main.main() c:/GoWorks/src/github.com/xxx/project/excel/main.go:39 +0x3cb exit status 2 ```
net::ERR_CONNECTION_RESET
使用axios进行post请求时出错 在本地可以,但是在使用服务器后就会出错
歌曲歌词同步!歌词LRC拆分!怎么写!跪求大佬!急急急!
```**这是html页面** ``` <!--歌词 --> <div class="lyric"> <ul id="lyric" class="lyriclist" v-if="lyricList" style="list-style: none;"> {{lyricList.lyric}} </ul> </div> ``` **这是api** ``` // 获取歌词 axios.get("https://autumnfish.cn/lyric?id=" + musicId).then( function(response){ // console.log(response); // console.log(response.data.lrc); that.lyricList = response.data.lrc; },function(err){} ); ``` ``` "[00:00.000]":"作曲 : G.E.M. 邓紫棋", "[00:01.000]":"作词 : G.E.M. 邓紫棋", "[00:03.52]":"编曲:G.E.M.邓紫棋 / T-Ma 马敬恒", "[00:06.31]":"可惜我们终于来到", "[00:10.18]":"一个句号", "[00:13.16]":"窗外不愿飞的蜂鸟", "[00:16.58]":"也在哀悼", "[00:19.67]":"城市再也不会听到", ``` 歌词前面的时间切掉!就剩歌词!
求解!!!!!请问怎样调用在django自带的数据库中新建立的数据表?
下面是view.py 的一部分代码,我想把用户输入的数据存到“书籍信息表”,但是 不知道哪里出问题了,django自带了sqlite3数据库,要使用在sqlite3里新建立的表要不要先连接,求解!!! 数据表分别有:用户信息表、书籍信息表、管理员信息表 from django.shortcuts import render, redirect from .models import 用户信息表, 书籍信息表, 管理员信息表 from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User from django.contrib import auth def sell(request): if request.method == ‘GET’: return render(request, ‘我要卖.html’) elif request.method == ‘POST’: 书名 = request.POST【‘书名’】 作者 = request.POST【‘作者’】 try: ISDN码 = request.POST【‘ISDN’】 出版社 = request.POST【‘出版社’】 卖家联系方式 = request.POST【‘电话’】 product = 书籍信息表() product.book_name = 书名 product.author = 作者 product.isdn码 = ISDN码 product.publisher = 出版社 product.Tel = 卖家联系方式 product.save() return redirect(‘主页’) except Exception as err: return render(redirect, ‘我要卖.html’, {‘错误’: ‘请填写完整信息!’})
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问