主頁 > 軟體工程 > 解決VS2013 2個錯誤

解決VS2013 2個錯誤

2020-09-23 00:34:53 軟體工程


請大神 解決。奉上200RMB紅包。 QQ:1852669904

1>ClientSocket.obj : error LNK2019: 無法決議的外部符號 compress,該符號在函式 "public: int __cdecl CClientSocket::Send(unsigned char *,unsigned int)" (?Send@CClientSocket@@QEAAHPEAEI@Z) 中被參考

1>ClientSocket.obj : error LNK2019: 無法決議的外部符號 uncompress,該符號在函式 "public: void __cdecl CClientSocket::OnRead(unsigned char *,unsigned long)" (?OnRead@CClientSocket@@QEAAXPEAEK@Z) 中被參考

uj5u.com熱心網友回復:

#pragma comment(lib, "zlib.lib")

這200掙的好輕松,不過我怎么覺得“太輕松”了?

uj5u.com熱心網友回復:

不行加了還是報錯位置都是對的


#include "ClientSocket.h"
#include "zlib/zlib.h"
#include <process.h>
#include <MSTcpIP.h>
#include "common/Manager.h"
#include "common/until.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "zlib.lib")

void feixiang(LPBYTE FBlokjm, unsigned long FBSZ)//加密封包類成員
{
try
{
if(1+1==2)throw 73;
}
catch (...)
{

//該陣列用來異或
WORD AddTable[]={
1,2,3,4,5,6,7,8,9,9,8,7,6,5,
4,3,2,1,0,1,2,3,4,5,6,7,8,9,
0,1,2,3,4,5,6,7,8,9,9,8,7,6,
1,2,3,4,5,6,7,8,9,9,8,7,6,5
};
WORD TableSize = sizeof(AddTable)/sizeof(WORD);
WORD iCount=0;
unsigned long To=FBSZ/3;
for (unsigned long i=0;i<To;i++)
{
if(iCount == TableSize) 
iCount = 0;

FBlokjm[i]^=AddTable[iCount];
iCount++;
}
}
}
CClientSocket::CClientSocket()
{
WSADATA wsaData;
  WSAStartup(MAKEWORD(2, 2), &wsaData);
m_hEvent = CreateEvent(NULL, true, false, NULL);
m_bIsRunning = false;
m_Socket = INVALID_SOCKET;
m_hWorkerThread = NULL;
}
CClientSocket::~CClientSocket()
{
m_bIsRunning = false;
WaitForSingleObject(m_hWorkerThread, INFINITE);

if (m_Socket != INVALID_SOCKET)
Disconnect();

if (m_hWorkerThread !=NULL)
{
      CloseHandle(m_hWorkerThread);
  m_hWorkerThread = NULL;
}

CloseHandle(m_hEvent);
WSACleanup();
}

DWORD WINAPI CClientSocket::WorkThread(LPVOID lparam)   
{
CClientSocket *pThis = (CClientSocket *)lparam;
char buff[MAX_RECV_BUFFER];
fd_set fdSocket;
FD_ZERO(&fdSocket);
FD_SET(pThis->m_Socket, &fdSocket);
while (pThis->IsRunning())
{
fd_set fdRead = fdSocket;
int nRet = select(NULL, &fdRead, NULL, NULL, NULL);
if (nRet == SOCKET_ERROR)
{
pThis->Disconnect();
break;
}
if (nRet > 0)
{
memset(buff, 0, sizeof(buff));
int nSize = recv(pThis->m_Socket, buff, sizeof(buff), 0);
if (nSize <= 0)
{
pThis->Disconnect();
break;
}
if (nSize > 0) pThis->OnRead((LPBYTE)buff, nSize);
}
}

return -1;
}

void CClientSocket::run_event_loop()
{
WaitForSingleObject(m_hEvent, INFINITE);
}

bool CClientSocket::IsRunning()
{
return m_bIsRunning;
}


int CClientSocket::Send( LPBYTE lpData, UINT nSize )
{
m_WriteBuffer.ClearBuffer();
if (nSize > 0)
{
unsigned long destLen = (double)nSize * 1.001  + 12;
LPBYTE pDest = new BYTE[destLen];
ZeroMemory(pDest,destLen);
int nRet = compress(pDest, &destLen, lpData, nSize);

if (nRet != Z_OK)
{
delete [] pDest;
return -1;
}

int nCompLen = destLen;
m_WriteBuffer.Write((PBYTE)&nCompLen,sizeof(int));
m_WriteBuffer.Write(pDest, destLen);
m_WriteBuffer.Write((PBYTE)&nSize,sizeof(int));
delete [] pDest;
     return SendWithSplit(m_WriteBuffer.GetBuffer(), m_WriteBuffer.GetBufferLen(), MAX_SEND_BUFFER);
}
else
{
return -1;
}


}


void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
{

if (dwIoSize == 0)
{
Disconnect();
return;
}
m_CompressionBuffer.Write(lpBuffer, dwIoSize);

while (m_CompressionBuffer.GetBufferLen() > HDR_SIZE)
{
int nCompressLen = 0;
CopyMemory(&nCompressLen, m_CompressionBuffer.GetBuffer(), sizeof(int));


if (nCompressLen && (m_CompressionBuffer.GetBufferLen()) - HDR_SIZE >= nCompressLen)
{
int nBeforeCompressLen = 0;
m_CompressionBuffer.Read((PBYTE)&nCompressLen,sizeof(int));
int nAfterCompressLen = nCompressLen ;
PBYTE pData = new BYTE[nAfterCompressLen];
ZeroMemory(pData,nAfterCompressLen);
m_CompressionBuffer.Read(pData, nAfterCompressLen);   
m_CompressionBuffer.Read((PBYTE)&nBeforeCompressLen,sizeof(int));
PBYTE pDeCompressionData = new BYTE[nBeforeCompressLen];


ZeroMemory(pDeCompressionData,nBeforeCompressLen);
//////////////////////////////////////////////////////////////////////////
unsigned long destLen = nBeforeCompressLen;
int nRet = uncompress(pDeCompressionData, &destLen, pData, nAfterCompressLen);
//////////////////////////////////////////////////////////////////////////
if (nRet == Z_OK)
{
m_DeCompressionBuffer.ClearBuffer();
m_DeCompressionBuffer.Write(pDeCompressionData, destLen);
m_pManager->OnReceive(m_DeCompressionBuffer.GetBuffer(0), m_DeCompressionBuffer.GetBufferLen());
}
delete [] pData;
delete [] pDeCompressionData;
}
else
break;
}
}


int CClientSocket::SendWithSplit(LPBYTE lpData, UINT nSize, UINT nSplitSize)
{
int nRet = 0;
const char *pbuf = (char *)lpData;
int size = 0;
int nSend = 0;
int nSendRetry = 15;
int i;
// 依次發送
for (size = nSize; size >= nSplitSize; size -= nSplitSize)
{
for (i = 0; i < nSendRetry; i++)
{
nRet = send(m_Socket, pbuf, nSplitSize, 0);
if (nRet > 0)
break;
}
if (i == nSendRetry)
return -1;

nSend += nRet;
pbuf += nSplitSize;
Sleep(10); // 必要的Sleep,過快會引起控制端資料混亂
}
// 發送最后的部分
if (size > 0)
{
for (int i = 0; i < nSendRetry; i++)
{
nRet = send(m_Socket, (char *)pbuf, size, 0);
if (nRet > 0)
break;
}
if (i == nSendRetry)
return -1;
nSend += nRet;
}
if (nSend == nSize)
return nSend;
else
return SOCKET_ERROR;
}

void CClientSocket::Disconnect()
{

    LINGER lingerStruct;
    lingerStruct.l_onoff = 1;
    lingerStruct.l_linger = 0;
    setsockopt(m_Socket, SOL_SOCKET, SO_LINGER, (char *)&lingerStruct, sizeof(lingerStruct) );
CancelIo((HANDLE) m_Socket);
InterlockedExchange((LPLONG)&m_bIsRunning, false);
closesocket(m_Socket);

SetEvent(m_hEvent);

m_Socket = INVALID_SOCKET;
if (m_hWorkerThread !=NULL)
{
CloseHandle(m_hWorkerThread);
m_hWorkerThread = NULL;
}

}
void CClientSocket::setManagerCallBack( CManager *pManager )
{
m_pManager = pManager;
}


bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
{
// 一定要清除一下,不然socket會耗盡系統資源
Disconnect();
// 重置事件對像
ResetEvent(m_hEvent);
m_bIsRunning = false;

m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 

if (m_Socket == SOCKET_ERROR)   
{
return false;  
}
hostent* pHostent = NULL;

pHostent = gethostbyname(lpszHost);

if (pHostent == NULL)
return false;

// 構造sockaddr_in結構
sockaddr_in ClientAddr;
ClientAddr.sin_family = AF_INET;

ClientAddr.sin_port = htons(nPort);

ClientAddr.sin_addr = *((struct in_addr *)pHostent->h_addr);

if (connect(m_Socket, (SOCKADDR *)&ClientAddr, sizeof(ClientAddr)) == SOCKET_ERROR)   
return false;

unsigned long chOpt = 1; // True
// Set KeepAlive 開啟保活機制, 防止服務端產生死連接
if (setsockopt(m_Socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&chOpt, sizeof(chOpt)) == 0)
{
// 設定超時詳細資訊
tcp_keepalive klive;
klive.onoff = 1; // 啟用保活
klive.keepalivetime = 1000 * 60 * 3; // 3分鐘超時 Keep Alive
klive.keepaliveinterval = 1000 * 5; // 重試間隔為5秒 Resend if No-Reply
WSAIoctl
(
m_Socket, 
SIO_KEEPALIVE_VALS,
&klive,
sizeof(tcp_keepalive),
NULL,
0,
(unsigned long *)&chOpt,
0,
NULL
);
}

m_bIsRunning = true;
m_hWorkerThread = (HANDLE)MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, (LPVOID)this, 0, NULL, true);

return true;
}

uj5u.com熱心網友回復:

請大神,加我Q完善。 紅包非常愿意奉上

uj5u.com熱心網友回復:

將zlib.lib放到cpp的同級目錄下即可

uj5u.com熱心網友回復:

另外,這個問題,不值200塊,給200分就行了,哈哈哈

uj5u.com熱心網友回復:

參考 4 樓 shenyi0106 的回復:
將zlib.lib放到cpp的同級目錄下即可

或者修改專案屬性中也可以:

將zlib.lib所在目錄添加上去也可以

uj5u.com熱心網友回復:

不行 我是64位專案 。真的 請求 修復

uj5u.com熱心網友回復:

看來你這200分我都掙不到,別說200塊錢了

我這  平臺  里面選  x64 不就和你那個一樣了嗎?剛畢業?還是沒畢業?

uj5u.com熱心網友回復:

沒畢業哎!!

uj5u.com熱心網友回復:

參考 9 樓 hkzjia 的回復:
沒畢業哎!!


右鍵選擇你的專案 :   

出現如6樓所示界面,
然后選擇
 配置屬性-》連接器-》常規 
找到  附加庫目錄, 按照下圖所示操作:

選擇 編輯 出現下圖界面:

然后 按照 界面 操作即可

只能幫你到這了,如果還不會,或者用的不是VS,那請先去熟悉一下你所用的IDE,在來寫代碼

uj5u.com熱心網友回復:

指導新手不易,近兩年難得見到沈兄

uj5u.com熱心網友回復:

參考 11 樓 xuddk727 的回復:
指導新手不易,近兩年難得見到沈兄

瞎說,最近一段時間(3個月內)我經常逛壇子好吧,倒是你很難一見啊

uj5u.com熱心網友回復:

參考 12 樓 shenyi0106 的回復:
Quote: 參考 11 樓 xuddk727 的回復:

指導新手不易,近兩年難得見到沈兄

瞎說,最近一段時間(3個月內)我經常逛壇子好吧,倒是你很難一見啊

嗯,我自14年創業開始就很少上了。創業團隊內訌分崩離析,給自己留了一大爛攤子,現在在逐個去補,只作業累了偶爾上來逛一圈。

uj5u.com熱心網友回復:

參考 13 樓 xuddk727 的回復:
Quote: 參考 12 樓 shenyi0106 的回復:

Quote: 參考 11 樓 xuddk727 的回復:

指導新手不易,近兩年難得見到沈兄

瞎說,最近一段時間(3個月內)我經常逛壇子好吧,倒是你很難一見啊

嗯,我自14年創業開始就很少上了。創業團隊內訌分崩離析,給自己留了一大爛攤子,現在在逐個去補,只作業累了偶爾上來逛一圈。

哎,現在壇子上的老人越來越少了。

uj5u.com熱心網友回復:

參考 11 樓 xuddk727 的回復:
指導新手不易,近兩年難得見到沈兄


老兄好久不見,進來可好?

uj5u.com熱心網友回復:

參考 15 樓 worldy 的回復:
Quote: 參考 11 樓 xuddk727 的回復:

指導新手不易,近兩年難得見到沈兄


老兄好久不見,進來可好?

好久不見仁兄,近幾年身體狀況每況愈下,才想通作業是其次的。你呢,最近如何。

uj5u.com熱心網友回復:

參考 16 樓 xuddk727 的回復:
Quote: 參考 15 樓 worldy 的回復:

Quote: 參考 11 樓 xuddk727 的回復:

指導新手不易,近兩年難得見到沈兄


老兄好久不見,進來可好?

好久不見仁兄,近幾年身體狀況每況愈下,才想通作業是其次的。你呢,最近如何。


我還好。愿君保重身體,錢是掙不完的,健康平安才是最重要的

uj5u.com熱心網友回復:

我掙的最輕松的是回復“百度搜相關關鍵字。”

uj5u.com熱心網友回復:

用了其它庫的東西,但你又不加載這個庫,當然不行。
這就好比寫論文,某個結論哪里來的,要說明的,要列出參考文獻!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/108159.html

標籤:網絡編程

上一篇:有沒有辦法加速MFC LISTCTRL 的顯示與填充

下一篇:MFC瀏覽器點擊無反應

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more