首页 文章 精选 留言 我的

精选列表

搜索[windows10],共231篇文章
优秀的个人博客,低调大师

Windows10 VS2017 C++ xml解析(tinyxml2库)

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/85264849 首先下载tinyxml2 7.0.1库:https://github.com/leethomason/tinyxml2/releases 打开tinyxml2,然后升级sdk,解决方案->重定解决方案目标,升级。 然后编译生成dll和库文件,在tinyxml2\Debug-Dll下,将tinyxml2.lib和tinyxml2.dll拷贝到新建的工程目录,在新建工程根目录新建include文件夹,将tinyxml2.h拷入,并将工程->配置属性->vc++目录->包含目录指向此目录。 编码: #include "pch.h" #include <iostream> #include <tinyxml2.h> #pragma comment(lib, "tinyxml2.lib") using namespace std; int main() { static const char* xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" "<entries>" "<entry name=\"My First Post\" age=\"52\">I believe every human has a finite number of heartbeats. I don't intend to waste any of mine</entry>" "<entry name=\"The Second\" age=\"\">You know, being a test pilot isn't always the healthiest business in the world.</entry>" "<entry>Entry</entry>" "<entry name=\"The Third\" secretdata=\"9809832\">We have an infinite amount to learn both from nature and from each other</entry>" "<entry name=\"Final Post...\" hidden=\"true\" age=\"3\">Across the sea of space, the stars are other suns.</entry>" "</entries>"; tinyxml2::XMLDocument doc; doc.Parse(xml); tinyxml2::XMLHandle docHandle(&doc); tinyxml2::XMLElement *entry = docHandle.FirstChildElement("entries").ToElement(); if (entry) { for (tinyxml2::XMLNode *node = entry->FirstChildElement(); node; node = node->NextSibling()) { tinyxml2::XMLElement *e = node->ToElement(); const char *name = e->Attribute("name"); if (name) cout << name << ": "; cout << e->GetText(); int true_age = e->IntAttribute("age") + 50; cout << " " << true_age << endl; } } return 0; } 如果需要单独使用exe,需要注意带上tinyxml2.dll文件 结果显示: 参考文章:https://gist.github.com/felton/5530029

优秀的个人博客,低调大师

Windows10 VS2017 C++ ini解析(使用simpleini头文件)

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/85266402 simpleini项目地址:https://github.com/brofield/simpleini 下载,新建项目,并将SimpleIni.h文件通过包含目录的方式加载进来。 创建test.ini文件,内容如下: [server] root = 10.1.1.1 gc = 10.1.1.2 game = 10.1.1.3 写码: #include "pch.h" #include <iostream> #include <SimpleIni.h> using namespace std; int main() { CSimpleIniA ini; ini.SetUnicode(); ini.LoadFile("test.ini"); const char * pVal = ini.GetValue("server", "game", "default"); ini.SetValue("server", "game", "10.1.1.5"); const char * xVal = ini.GetValue("server", "game", "default"); cout << pVal << endl; cout << xVal << endl; // save the data back to the file int rc = ini.SaveFile("test.ini"); if (rc < 0) return false; } 打开test.ini文件会发现game一行内容改变。

优秀的个人博客,低调大师

Jmeter的下载安装和环境变量配置(Windows10系统)

小白笔记 一.在Oracle和Apache官网分别下载jdk1.8和Jmeter(下图是我下载的版本) 二.解压/安装jdk和Jmeter(省略) 三.配置jdk1.8: Ctrl+E-此电脑-属性-高级系统属性-环境变量 新建:JAVA_HOME,变量值:D:Program FilesJavajdk1.8.0_152(以实际地址为准) 编辑:Path,变量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin;(若没有配置成功,去包里重新copy实际路径进行配置) 新建:CLASSPATH,变量值:%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar; 四. 检查配置: Ctrl+R-输入CMD-输入命令javac或java -version 回车键(下图为配置成功) 五.配置Jmeter: 新建:JMETER_HOME,变量值:D:apache-jmeter-3.3(以实际地址为准) 编辑:CLASSPATH 变量值(输入下面三个JAR包的路径):%JMETER_HOMElibextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;%JMETER_HOME%liblogkit-2.0.jar; 点击确定按钮保存 六.启动Jmeter: Jmeter解压包-bin目录-jmeter.bat-双击启动-进入Jmeter图形化操作界面(如下图)

优秀的个人博客,低调大师

Windows10 VS2017 C++使用crypto++库加密解密(AES)

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/85262234 参考文章:https://blog.csdn.net/tangcaijun/article/details/42110319 首先下载库:https://www.cryptopp.com/#download 使用vs2017打开cryptest.sln文件,解决方案选择“重订解决方案目标”,升级sdk。 编译库和dll文件 将生成的cryptopp.lib和cryptopp.dll放到项目文件夹,如果单独运行需要将dll文件拷贝到debug文件夹和生成的exe文件放在一起使用。 新建win32 c++控制台程序,工程->配置属性->vc++目录->包含目录,填写cryptopp的目录,需要使用其中的头文件. 编码: #include "pch.h" #include <iostream> #include <fstream> #include <aes.h> #include <filters.h> #include <modes.h> #include <Windows.h> #pragma comment(lib, "cryptopp.lib") using namespace std; byte key[CryptoPP::AES::DEFAULT_KEYLENGTH], iv[CryptoPP::AES::BLOCKSIZE]; void initKV() { memset(key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH); memset(iv, 0x00, CryptoPP::AES::BLOCKSIZE); // 或者也可以 /* char tmpK[] = "1234567890123456"; char tmpIV[] = "1234567890123456"; for (int j = 0; j < CryptoPP::AES::DEFAULT_KEYLENGTH; ++j) { key[j] = tmpK[j]; } for (int i = 0; i < CryptoPP::AES::BLOCKSIZE; ++i) { iv[i] = tmpIV[i]; } */ } string encrypt(string plainText) { string cipherText; // CryptoPP::AES::Encryption aesEncryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH); CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption(aesEncryption, iv); CryptoPP::StreamTransformationFilter stfEncryptor(cbcEncryption, new CryptoPP::StringSink(cipherText)); stfEncryptor.Put(reinterpret_cast<const unsigned char*>(plainText.c_str()), plainText.length() + 1); stfEncryptor.MessageEnd(); string cipherTextHex; for (int i = 0; i < cipherText.size(); i++) { char ch[3] = { 0 }; sprintf_s(ch, "%02x", static_cast<byte>(cipherText[i])); cipherTextHex += ch; } return cipherTextHex; } void writeCipher(string output) { ofstream out("cipher.data"); out.write(output.c_str(), output.length()); out.close(); cout << "writeCipher finish " << endl << endl; } string decrypt(string cipherTextHex) { string cipherText; string decryptedText; int i = 0; while (true) { char c; int x; stringstream ss; ss << hex << cipherTextHex.substr(i, 2).c_str(); ss >> x; c = (char)x; cipherText += c; if (i >= cipherTextHex.length() - 2)break; i += 2; } // CryptoPP::AES::Decryption aesDecryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH); CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption(aesDecryption, iv); CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, new CryptoPP::StringSink(decryptedText)); stfDecryptor.Put(reinterpret_cast<const unsigned char*>(cipherText.c_str()), cipherText.size()); stfDecryptor.MessageEnd(); return decryptedText; } string readCipher() { ifstream in("cipher.data"); string line; string decryptedText; while (getline(in, line)) { if (line.length() > 1) { decryptedText += decrypt(line) + "\n"; } line.clear(); } cout << "readCipher finish " << endl; in.close(); return decryptedText; } int main() { string text = "What's up dude!"; cout << "text : " << text << endl; initKV(); string cipherHex = encrypt(text); cout << "cipher : " << cipherHex << endl; writeCipher(cipherHex); string decrpt_text = readCipher(); cout << "text : " << decrpt_text << endl; return 0; } 运行结果:

优秀的个人博客,低调大师

Windows10 VS2017 C++多线程传参和等待线程结束

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/85322164 #include "pch.h" #include <iostream> #include <windows.h> using namespace std; typedef struct MyData { const char* str; }MYDATA; //线程函数 DWORD WINAPI Fun(LPVOID lpParamter) { MYDATA *pmd = (MYDATA *)lpParamter; for (int i = 0; i < 10; i++) { cout << "Displaying " << pmd->str << endl; Sleep(500); } return 0; } int main() { //使用struct传递参数 MYDATA xstr; xstr.str = "你好!"; //使用GetExitCodeThread()轮询检查 //DWORD exitCode = 0; //HANDLE hThread = CreateThread(NULL, 0, Fun, &xstr, 0, NULL); //while (1) { // GetExitCodeThread(hThread, &exitCode); // 严重浪费 CPU 时间 // if (STILL_ACTIVE != exitCode) // break; //} //CloseHandle(hThread); //WaitForSingleObject(),cpu使用率极低 HANDLE hThread = CreateThread(NULL, 0, Fun, &xstr, 0, NULL); WaitForSingleObject(hThread, INFINITE); // 等待,直到线程被激发 CloseHandle(hThread); cout << "Child thread is over." << endl; return 0; } 参考文章:https://www.cnblogs.com/XiHua/p/5028329.html

优秀的个人博客,低调大师

从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL

1 下载安装包 1.1 压缩包 https://dev.mysql.com/downloads/mysql/ [外链图片转存失败(img-oesO8K09-1566652568838)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 1.2 安装包 使用安装包安装则无需后续步骤 https://dev.mysql.com/downloads/file/?id=488055 [外链图片转存失败(img-Y3x59iO4-1566652568839)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 2 配置环境变量 [外链图片转存失败(img-RBgnyR9U-1566652568840)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 3 初始化MySQL [外链图片转存失败(img-pVrsH1g4-1566652568841)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 在MySQL路径下输入命令mysqld --initialize --user=mysql --console [外链图片转存失败(img-4a4YX8nO-1566652568842)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 3.1 记住你的初始密码 [外链图片转存失败(img-IQFQj1kT-1566652568842)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 2019-08-24T11:55:10.299750Z 0 [System] [MY-013169] [Server] F:DEVenvmysql-8.0.17-winx64binmysqld.exe (mysqld 8.0.17) initializing of server in progress as process 27232 2019-08-24T11:55:10.355861Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. 2019-08-24T11:55:33.531673Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: k;k;w6OJEZ#Q 2019-08-24T11:55:45.353166Z 0 [System] [MY-013170] [Server] F:DEVenvmysql-8.0.17-winx64binmysqld.exe (mysqld 8.0.17) initializing of server has completed 4 启动服务 [外链图片转存失败(img-LVA4VR9p-1566652568842)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")] 接着就是输入mysqld -install进行服务的添加 输入net start mysql启动服务 输入mysql -u root -p进行登录数据库,这时提示需要密码,然后就是用你上面的密码登录 修改密码语句:ALTER USER root@localhost IDENTIFIED BY '123456'; 修改密码为:123456 如果控制台乱码,可以改编码为utf-8 如果用git bash遇到问题,可以使用Windows自带的cmd或者powershell

优秀的个人博客,低调大师

Windows10 VS2017 C++ Server Socket简单服务器端与客户端

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/85237709 服务端: #include "pch.h" #include<iostream> #include<WinSock2.h> #include <Ws2tcpip.h> #define CONNECT_NUM_MAX 10 #pragma comment(lib, "ws2_32.lib") using namespace std; int main() { //加载套接字库 WSADATA wsaData; int iRet = 0; iRet = WSAStartup(MAKEWORD(2, 2), &wsaData); if (iRet != 0) { cout << "WSAStartup(MAKEWORD(2, 2), &wsaData) execute failed!" << endl;; return -1; } if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion)) { WSACleanup(); cout << "WSADATA version is not correct!" << endl; return -1; } //创建套接字 SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0); if (serverSocket == INVALID_SOCKET) { cout << "serverSocket = socket(AF_INET, SOCK_STREAM, 0) execute failed!" << endl; return -1; } //初始化服务器地址族变量 SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); //绑定 iRet = bind(serverSocket, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); if (iRet == SOCKET_ERROR) { cout << "bind(serverSocket, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)) execute failed!" << endl; return -1; } //监听 iRet = listen(serverSocket, CONNECT_NUM_MAX); if (iRet == SOCKET_ERROR) { cout << "listen(serverSocket, 10) execute failed!" << endl; return -1; } else { cout << "Server is listening on " << addrSrv.sin_addr.S_un.S_addr << ":" << addrSrv.sin_port << "." << endl; } //等待连接_接收_发送 SOCKADDR_IN clientAddr; int len = sizeof(SOCKADDR); while (1) { SOCKET connSocket = accept(serverSocket, (SOCKADDR*)&clientAddr, &len); if (connSocket == INVALID_SOCKET) { cout << "accept(serverSocket, (SOCKADDR*)&clientAddr, &len) execute failed!" << endl; return -1; } else { cout << "Connection established! Waiting for messages." << endl; } int x = 0; while (true) { //接收消息 char recvBuf[100]; int sig = recv(connSocket, recvBuf, 100, 0); //没有连接时断开 if (sig <= 0) { printf("Error: Lost connection!\n"); break; } printf("%s\n", recvBuf); //发送消息 char sendBuf[100]; //sprintf_s(sendBuf, "Welcome %s", inet_ntoa(clientAddr.sin_addr)); char str[INET_ADDRSTRLEN]; sprintf_s(sendBuf, "Welcome! client from %s %d!", inet_ntop(AF_INET, &clientAddr.sin_addr, str, sizeof(str)), x); send(connSocket, sendBuf, strlen(sendBuf) + 1, 0); x++; } //关闭连接 closesocket(connSocket); } system("pause"); return 0; } 多线程服务端: server.h #ifndef SERVER_H #define SERVER_H #include <Winsock2.h> #include <windows.h> #pragma comment (lib, "ws2_32.lib") #define IP_BUF_SIZE 129 class Server { public: Server(); ~Server(); Server(const Server &) = delete; Server & operator=(const Server &) = delete; void WaitForClient(); private: WORD winsock_ver; WSADATA wsa_data; SOCKET sock_svr; SOCKET sock_clt; HANDLE h_thread; SOCKADDR_IN addr_svr; SOCKADDR_IN addr_clt; int ret_val; int addr_len; PWSTR buf_ip[IP_BUF_SIZE]; }; #endif #include <iostream> #include <WS2tcpip.h> using std::cerr; using std::cout; using std::endl; #define SERVER_PORT 6000 #define MSG_BUF_SIZE 1024 Server::Server() { cout << "Initializing server...\n"; // winsock_ver = MAKEWORD(2, 2); addr_len = sizeof(SOCKADDR_IN); addr_svr.sin_family = AF_INET; addr_svr.sin_port = ::htons(SERVER_PORT); addr_svr.sin_addr.S_un.S_addr = ADDR_ANY; memset(buf_ip, 0, IP_BUF_SIZE); // ret_val = ::WSAStartup(winsock_ver, &wsa_data); if (ret_val != 0) { cerr << "WSA failed to start up!Error code: " << ::WSAGetLastError() << "\n"; system("pause"); exit(1); } cout << "WSA started up successfully...\n"; // sock_svr = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock_svr == INVALID_SOCKET) { cerr << "Failed to create server socket!Error code: " << ::WSAGetLastError() << "\n"; ::WSACleanup(); system("pause"); exit(1); } cout << "Server socket created successfully...\n"; // ret_val = ::bind(sock_svr, (SOCKADDR*)&addr_svr, addr_len); if (ret_val != 0) { cerr << "Failed to bind server socket!Error code: " << ::WSAGetLastError() << "\n"; ::WSACleanup(); system("pause"); exit(1); } cout << "Server socket bound successfully...\n"; // ret_val = ::listen(sock_svr, SOMAXCONN); if (ret_val == SOCKET_ERROR) { cerr << "Server socket failed to listen!Error code: " << ::WSAGetLastError() << "\n"; ::WSACleanup(); system("pause"); exit(1); } cout << "Server socket started to listen...\n"; // cout << "Server started successfully..." << endl; } Server::~Server() { ::closesocket(sock_svr); ::closesocket(sock_clt); ::WSACleanup(); cout << "Socket closed..." << endl; } DWORD WINAPI CreateClientThread(LPVOID lpParameter); // void Server::WaitForClient() { while (true) { sock_clt = ::accept(sock_svr, (SOCKADDR*)&addr_clt, &addr_len); if (sock_clt == INVALID_SOCKET) { cerr << "Failed to accept client!Error code: " << ::WSAGetLastError() << "\n"; ::WSACleanup(); system("pause"); exit(1); } ::InetNtop(addr_clt.sin_family, &addr_clt, *buf_ip, IP_BUF_SIZE); cout << "A new client connected...IP address: " << buf_ip << ", port number: " << ::ntohs(addr_clt.sin_port) << endl; h_thread = ::CreateThread(nullptr, 0, CreateClientThread, (LPVOID)sock_clt, 0, nullptr); if (h_thread == NULL) { cerr << "Failed to create a new thread!Error code: " << ::WSAGetLastError() << "\n"; ::WSACleanup(); system("pause"); exit(1); } ::CloseHandle(h_thread); } } DWORD WINAPI CreateClientThread(LPVOID lpParameter) { SOCKET sock_clt = (SOCKET)lpParameter; char buf_msg[MSG_BUF_SIZE]; int ret_val = 0; int snd_result = 0; do { memset(buf_msg, 0, MSG_BUF_SIZE); ret_val = ::recv(sock_clt, buf_msg, MSG_BUF_SIZE, 0); if (ret_val > 0) { if (strcmp(buf_msg, "exit") == 0) { cout << "Client requests to close the connection..." << endl; break; } cout << "Message received: " << buf_msg << endl; snd_result = ::send(sock_clt, buf_msg, MSG_BUF_SIZE, 0); if (snd_result == SOCKET_ERROR) { cerr << "Failed to send message to client!Error code: " << ::GetLastError() << "\n"; ::closesocket(sock_clt); system("pause"); return 1; } } else if (ret_val == 0) { cout << "connection closed..." << endl; } else { cerr << "Failed to receive message from client!Error code: " << ::GetLastError() << "\n"; ::closesocket(sock_clt); system("pause"); return 1; } } while (ret_val > 0); // ret_val = ::shutdown(sock_clt, SD_SEND); if (ret_val == SOCKET_ERROR) { cerr << "Failed to shutdown the client socket!Error code: " << ::GetLastError() << "\n"; ::closesocket(sock_clt); system("pause"); return 1; } return 0; } server.cpp #include "pch.h" #include "server.h" int main() { Server svr; svr.WaitForClient(); system("pause"); return 0; } 客户端: #include "pch.h" #include<iostream> #include <winsock2.h> #include <Ws2tcpip.h> using namespace std; #pragma comment(lib, "ws2_32.lib") int main() { //加载套接字库 WSADATA wsaData; int iRet = 0; iRet = WSAStartup(MAKEWORD(2, 2), &wsaData); if (iRet != 0) { cout << "WSAStartup(MAKEWORD(2, 2), &wsaData) execute failed!" << endl; return -1; } if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion)) { WSACleanup(); cout << "WSADATA version is not correct!" << endl; return -1; } //创建套接字 SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, 0); if (clientSocket == INVALID_SOCKET) { cout << "clientSocket = socket(AF_INET, SOCK_STREAM, 0) execute failed!" << endl; return -1; } //初始化服务器端地址族变量 SOCKADDR_IN srvAddr; //srvAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); inet_pton(AF_INET, "127.0.0.1", &srvAddr.sin_addr); srvAddr.sin_family = AF_INET; srvAddr.sin_port = htons(6000); //连接服务器 iRet = connect(clientSocket, (SOCKADDR*)&srvAddr, sizeof(SOCKADDR)); if (0 != iRet) { cout << "connect(clientSocket, (SOCKADDR*)&srvAddr, sizeof(SOCKADDR)) execute failed!" << endl; return -1; } int x = 0; while (true) { x++; //发送消息 char sendBuf[100]; sprintf_s(sendBuf, "Hello, this is client %s %d!", "bunny", x); printf(sendBuf); printf("\n"); send(clientSocket, sendBuf, strlen(sendBuf) + 1, 0); //接收消息 char recvBuf[100]; int sig = recv(clientSocket, recvBuf, 100, 0); //没有连接时断开 if (sig <=0) { printf("Error: Lost connection!\n"); break; } printf("%s\n", recvBuf); //跳出 if (x==20) { break; } Sleep(3000); } //清理 closesocket(clientSocket); WSACleanup(); system("pause"); return 0; } 参考地址:https://www.cnblogs.com/darren45/p/4818867.htmlhttps://blog.csdn.net/zyy617532750/article/details/58595700/https://www.cnblogs.com/jzincnblogs/p/5189636.htmlhttps://blog.csdn.net/s_lisheng/article/details/74502795

优秀的个人博客,低调大师

哈工大自然语言处理ltp在windows10下的源代码安装时builtin_converters.cpp报错

安装LTP的环境要求比较复杂,首先cmake,VS2010等等。今天要说的时编译过程中出现的一个坑,python setup.py install,编译到后面会报错。直接上错误代码: patch\libs\python\src\converter\builtin_converters.cpp(51): error C2440: “return”: 无法从“const char *”转换为“void *” patch\libs\python\src\converter\builtin_converters.cpp(51): note: 转换丢失限定符 patch\libs\python\src\converter\builtin_converters.cpp(443): warning C4244: “初始化”: 从“Py_ssize_t”转换到“int”,可能丢失数据 error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2 错误说的很清楚,就是类型转换出错。51行加 (void*),使用强制转换暴力解决即可: // Python String. #if PY_VERSION_HEX < 0x03000000 void* convert_to_cstring(PyObject* obj) { return PyString_Check(obj) ? PyString_AsString(obj) : 0; } #else void* convert_to_cstring(PyObject* obj) { return PyUnicode_Check(obj) ? (void*) _PyUnicode_AsString(obj) : 0; } #endif 语义角色标准过程中如果出现以下错误: labeller.load(srl_model_path) # 加载模型 RuntimeError: incompatible native format - size of long 那多半是你的模型库没有加载正确,win10下面的模型库需要的是pisrl_win.model。文档http://ltp.ai/download.html里面写的很明确。 当前版本:3.4.0 在你的平台上下载 LTP 源码或预编译安装包,然后即可马上进行开发。 注:3.4.0 版本 SRL模型 pisrl.model 如在windows系统下不可用,可以到 此链接 下载支持windows的语义角色标注模型。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。