當前位置:首頁 » 挖礦知識 » covc怎麼挖礦

covc怎麼挖礦

發布時間: 2021-08-13 02:09:57

『壹』 vc 中使用com的方法

隨著Internet和Intranet應用的飛速發展,COM(Component Object Model,組件對象模型)以其巨大的潛力滲透到軟體學科的各個領域。在Windows操作平台下,眾多以COM形式提供的組件模塊,如DirectX多媒體軟體包、OLE DB/ADO資料庫組件系統等,極大地豐富了操作系統的功能。由於COM機制允許任意兩組件之間相互通信而不必關心是在何種計算機上的何種操作系統下運行,也不用關心組件是使用何種語言編制的,這使COM技術擁有了強大的生命力。尤其是Windows 2000同COM的下一代產品COM+的結合更加緊密,將使COM/COM+技術得到更廣泛的應用。本文介紹在VC++ 6.0下編寫COM客戶程序的三種方法,雖然每一種方法都可以達到使用代碼組件的目的,但詳細了解並掌握所有方法會為根據具體情況選擇適當方法提供更大的餘地。

為敘述清楚,本文所用的程序框架均為對話框模式的MFC EXE工程。在編程前,首先要確定待操作的代碼組件是否已經在系統中注冊。如果代碼組件沒有注冊,可以通過Windows\System目錄下的regsvr32. exe程序對其進行注冊。

COM庫函數

利用COM庫函數使用代碼組件的方法是本文介紹的三種方法中實現起來最麻煩和困難的方法。它要求開發人員必須具有對COM原理的深入理解。該方法實現步驟如下:

1. 首先添加COM初始和終止代碼。在應用程序類的初始化實例函數InitInstance()中添加如下代碼:

CoInitialize(NULL);

……

CoUnInitialize();

上述語句運行在MFC框架/非MFC框架中,但由於本文程序使用MFC框架,所以也可以利用AfxOleInit()函數對其進行初始化。

2. 然後用#include 語句包含對組件頭文件的引用並創建組件對象。在頭文件中包含了介面的C++定義以及說明介面ID IID和類ID CLSID的符號化常量。創建工作在初始化對話框函數中進行:

IAccount pAccount=NULL;

……

CoCreateInstance(CLSID_Account,

NULL,

CLSCTX_INPROC_SERVER,

IID_Iaccount,

reinterpret_cast (&pAccount));

3. 最後釋放組件對象。該工作應在程序退出之前完成,比如在消息WM_CLOSE的響應函數中進行:

if(pAccount!=NULL)

pAccount->Realease();

對該代碼組件中的其他功能函數的調用,可以通過組件對象的介面指針pAccount來進行:

……

BSTR bstrResult;

PAccount-> Post(100,bstrResult);

SysFreeString(bstrResult);

……

由於COM支持類在comdef. h中定義,所以還要包含對該頭文件的引用,才可以使程序正常運行。

類向導

通過類向導可以直接閱讀組件的類型庫,並產生包裝類型庫中每個介面的類,通過這些類的成員函數可以訪問組件介面的方法和屬性,與使用ActiveX控制項的方法有些類似。

首先添加對COM組件進行初始化的代碼。我們可以通過類向導的From a Type Library加入組件的.tlb類型庫文件,並從中引入其介面類。在本例中引入的類型庫文件中只包含一個從ColeDispatchDriver派生的組件包裝類IAccount。通過包裝類的成員,可以了解到組件介面能提供哪些服務,而且可以通過它們訪問組件介面的方法和屬性。

在初始化對話框函數里用COleDispatchDriver類的CreateDispatch()成員函數創建Account組件對象:

IAccount m_account;

……

m_account.CreateDispatch(「ATLSample.Account.1」));

其中ProgID值「ATLSample. Account. 1」可以通過Microsoft Visual Studio Tools 6.0里的OLE View工具查找到,其前提是該組件已被成功注冊過。

釋放Account組件對象也可以用COleDispatch-Driver類的ReleaseDispatch()函數來完成。

對於在COM庫函數方法中用過的Post方法可用下述方法調用:

CString str=m_account. Post(100);

可以看出此種方法實現了同樣的功能但實現起來要比上一種方法簡單些,而且對理解COM的要求也不高。

#import 指令

#import 指令方法非常簡便。對於類型庫文件採用該指令是非常合適的,因為不管是調試版本還是發行版本,對於類型庫文件而言,其路徑是固定的。#import指令在執行時將會從待引入的類型庫中提取出兩個文件:一個.tlh文件和一個.tli文件,後者僅僅是包裝類的函數實現,而前者則包含了許多有關的重要信息。智能介面指針也在其中定義:

_COM_SMARTPTR_TYPEDEF(IAccount,__uuidof(IAccount));

在實際編譯時,編譯器會將其展開成下述代碼,並通過_com_ptr_t模板類為介面IAccount定義一個智能指針IAccountPtr。之所以說其是智能指針,是由於它替代IAccount時,會自動處理CoCreate-Instance和所有的 IUnknow方法,使用起來非常方便:

typedef _com_ptr_t<_com_IIID< Iaccount,__uuidof(IAccount)>> IAccountPtr;

由於有了智能指針,我們就可以調用_com_ptr_t模板類的CreateInstance()函數來完成對介面指針的創建工作:

IAccountPtr m_account=NULL;

m_account.CreateInstance(__uuidof(Account));

由於在生成的.tlh文件中包含結構聲明和declspec(uuid(「」))聲明,所以在這里可以很方便地用__uuidof(Account)獲取介面的GUID。declspec(uuid(「」))聲明將GUID和類及每個介面聯系起來,允許開發人員以uuidof操作符來獲取類和介面的GUID。

需要特別指出的是: 為防止原有代碼和新引入的代碼之間發生名字沖突,編譯器會定義一個由類型庫名稱標識的命名空間,並在其中聲明的任何名稱內附加一個標識符。而為了避免指定命名空間標識,可以在#import 語句後加上using namespace,而且還可以用rename_namespace來改變命名空間。比如在本例中可以進行如下處理:

#import 「Account.tlb」 rename_namespace(「AccountDriver」)

using namespace AccountDriver;

這樣,在使用智能介面指針IAccountPtr時只需定義即可:

IAccountPtr m_account;

至於對代碼組件中的函數和屬性的調用則同前兩種方法一樣,也是通過m_account來完成訪問的。由於_com_ptr_t模板類和智能指針的引入,#import 指令方法是這三種方法中使用COM組件最簡單的一種。

『貳』 如何在VC中調用存儲過程

定義好一個Connection連接,然後再產生一個Command對象,利用Command 對象進行存儲過程調用
_ConnectionPtr m_Conn;
_CommandPtr m_Command
_variant_t vNULL;//定義為無參數
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND
m_Conn.CreateInstance( __uuidof( ADODB::Connection ));//初始化一個連接
m_Command.CreateInstance(__uuidof( ADODB::Command));;//初始化一個Command
m_Conn->Open("Provider=sqloledb;Data Source=yjf;Initial Catalog=pubs;User ID=sa;Password=sa","","",adModeUnknown);//在這里用你直接的Connection連接語句
_bstr_t sp_execstr;
sp_execstr="Exec sp_name";//sp_name為存儲過程名,這句話應該可以在SQL Server中直接執行的
m_Command->ActiveConnection=m_Conn;
m_Command->m_CommandTxt=sp_execstr;
m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
**********************************************************************************
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
//.cpp中在函數中執行
//建立ado連接
HRESULT hr;
hr=m_pConnection.CreateInstance(__uuidof(Connection));
try
{
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(_bstr_t(L"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Viper;Data Source=Viper"),_bstr_t (L"sa"),_bstr_t (L""),adModeUnknown);
}
}
catch(_com_error & err)
{
AfxMessageBox(err.Description(),MB_OK,0);
AfxMessageBox(err.ErrorMessage(),MB_OK,0);
AfxMessageBox("無法連接SQL SERVER 伺服器,程序將退出。請檢查網路設備",MB_OK,0);
exit(0);
}
//執行儲存過程
CString cvar1,cvar2;
int cvar3;
cvar1=」ddd」;
cvar2=」";
cvar3=0;
try
{
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection=app->m_pConnection;
m_pCommand->CommandType=adCmdStoredProc;
m_pCommand->CommandText=_bstr_t(」pr_zs_dzdy」);
_variant_t vvar1,vvar2,vvar3;
vvar1=_variant_t(_bstr_t(cvar1));
vvar2=_variant_t(_bstr_t(cvar2));
vvar3=_variant_t(cvar3);
_ParameterPtr mp_var1,mp_var2,mp_var3;
mp_var1.CreateInstance(__uuidof(Parameter));
mp_var2.CreateInstance(__uuidof(Parameter));
mp_var3.CreateInstance(__uuidof(Parameter));
mp_var1=m_pCommand->CreateParameter
(
_bstr_t(」var1″),
adVarChar,
adParamInput,
3,
vvar1
);
m_pCommand->Parameters->Append(mp_var1);
mp_var2=m_pCommand->CreateParameter
(
_bstr_t(」var2″),
adVarChar,
adParamOutput,
3,
vvar2
);
m_pCommand->Parameters->Append(mp_var2);
mp_var3=m_pCommand->CreateParameter
(
_bstr_t(」var3″),
adIntger,
adParamOutput,
9,
vvar3
);
m_pCommand->Parameters->Append(mp_var3);
_variant_t vNull;
vNull.vt=VT_ERROR;
vNull.scode=DISP_E_PARAMNOTFOUND;
m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);
cvar2=mp_var2->Value.bstrVal;
cvar3=mp_var3->Value;
}
catch(_com_error &error)
{
MessageBox(error.ErrorMessage(),」ADO錯誤!」);
MessageBox(error.Description(),」ADO錯誤!」);
}
********************************************************************************
如果用ODBC訪問資料庫的話,可參考下列代碼:
CDatabase * pDatabase = new CDatabase;
TRY
{
pDatabase->OpenEx( _T("DSN=ODBCName;UID=***;PWD=***"), CDatabase::noOdbcDialog);
}
CATCH (CDBException, e)
{
delete pDatabase;
return;
}END_CATCH
SQL.Format("exec sp_Name");//有參數的話直接寫再後面
pDatabase->ExecuteSQL(SQL);
pDatabase->Close();
delete pDatabase;
****************************
below is from MSDN,you can find a lot of technical article in MSDN if you search"stored procere and VC"
good luck
Steps To Reproce Behavior
In the SQL Server 7.0 Query Analyzer select the test database Pubs.
Create the following stored procere. This stored procere returns a recordset and an out parameter count.
if exists (select * from sysobjects where id = object_id(N'[dbo].[GetJobs]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop proc GetJobs
go
create proc GetJobs @id as int, @count as int [out] as
begin
Select @count = Count(*) from jobs where job_id >@id
Select * from jobs where job_id >@id
end
go
Use VC App Wizard to create a new console application and modify the code as follows:
#include "stdafx.h"
#include "stdio.h"
#import "C:\PROGRA~1\COMMON~1\System\ado\msado15.dll" no_namespace rename ("EOF", "EOF2")
struct InitOle {
InitOle() { ::CoInitialize(NULL); }
~InitOle() { ::CoUninitialize(); }
} _init_InitOle_;
int main(int argc, char* argv[])
{
_variant_t varErr((long)0, VT_ERROR);
_CommandPtr comm(__uuidof(Command));
_ConnectionPtr conn(__uuidof(Connection));
_bstr_t connstr="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=(local)";
conn->Open(connstr, "", "", adConnectUnspecified);
comm->ActiveConnection=conn;
comm->CommandText="GetJobs";
comm->CommandType = adCmdStoredProc ;
comm->Parameters->Refresh();
_variant_t recs;
comm->Parameters->Item[_variant_t((short)1)]->Value= _variant_t((long)5);
_RecordsetPtr rs = comm->Execute(&recs, &vtMissing,adCmdStoredProc);
_variant_t recordcount= comm->Parameters->Item[_variant_t((short)2)]->Value;
printf("recordcount = %li\n", (long)recordcount);
return 0;
}
Change the Datasource, User ID and password in the connection string above.
The recordcount variant that the above code returns is of type VT_NULL rather than the number of records that the stored procere returns.

『叄』 vc++怎樣從excel文件中讀寫數據

轉載:

首先利用Visual C++ 6.0,建立一個MFC基於對話框的工程項目,共享DLL,Win32平台。工程名稱ExcelTest。在主對話框中加入一個按鈕,
ID IDC_EXCELTEST
Caption Test Excel
雙擊該按鈕,增加成員函數void CExcelTestDlg::OnExceltest()。
在BOOL CExcelTestApp::InitInstance()中,dlg.DoModal();之前增加代碼:
if (CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持庫失敗!");
exit(1);
}
在return FALSE; 語句前,加入:
CoUninitialize();
選擇Menu->View->ClassWizade,打開ClassWizade窗口,選擇Add Class->From a type library,選擇D:\Program Files\Microsoft Office\office\Excel9.OLB(D:\Program Files\Microsoft Office\是本機上Microsoft Office 2000的安裝目錄,可根據個人機器上的實際安裝目錄修改)。選擇_Application、Workbooks、_Workbook、 Worksheets、_Worksheet、Range,加入新類,分別為_Application、Workbooks、_Workbook、 Worksheets、_Worksheet、Range,頭文件Excel9.h,源文件Excel9.cpp。
在ExcelTestDlg.cpp文件的頭部,#include "ExcelTestDlg.h"語句之下,增加 :
#include "comdef.h"
#include "Excel9.h"
在void CExcelTestDlg::OnExceltest() 函數中增加如下代碼:
void CExcelTestDlg::OnExceltest()
{
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
//創建Excel 2000伺服器(啟動Excel)

if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("創建Excel服務失敗!");
exit(1);
}
//利用模板文件建立新文檔
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("g:\\exceltest\\MyTemplate.xlt")));
//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
//得到sheet1
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
//得到全部Cells,此時,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//設置1行1列的單元的值
rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This Is A Excel Test Program!"));
//得到所有的列
rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);
//得到第一列
rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdispVal,true);
//設置列寬
rgMyRge.SetColumnWidth(_variant_t((long)200));
//調用模板中預先存放的宏
ExcelApp.Run(_variant_t("CopyRow"),_variant_t((long)10),vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);
//列印預覽
wbMyBook.SetSaved(true);
ExcelApp.SetVisible(true);
wbMyBook.PrintPreview(_variant_t(false));
//釋放對象
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
}

『肆』 除了算力挖礦,還有存力挖礦,能介紹下嗎

比特幣挖礦有很多方式,主要有下面幾種方式:
1.直接交易所購買,比如火幣、幣安、BuyBit、OK等等數字交易所都可以購買。雖然直接交易所購買比特幣是最便捷的一種方式,但是你得找准時間買。高點買可能被割,所以最好是根據行情低點買。到高點的時候還可以賣出,增值投資的比特幣。
2.礦機挖礦比特幣,這種方式獲得比特幣是最原始的一種,比特幣最初是電腦挖,現在是專業挖礦設備挖——比特幣礦機。市面上比較好的比特幣礦機有神馬、螞蟻、阿瓦隆等等品牌礦機。不過礦機挖礦門檻比較高,這點群主得注意。
3.雲算力挖礦,雲算力其實就會礦機拆分後的挖礦方式,比特幣的挖出其實是算力的因素。因為礦機挖礦門檻比較高,所以很多礦機商就將礦機拆分成一份一份的算力,向用戶售賣。
4.算力存證挖礦,這是一種新型的挖比特幣方式,算力存證主要是對應1台1T,功耗為60W的礦機。因為雲算力挖礦,租賃雲算力的費用不會退還,所以就出現算力存證挖礦方式,因為最後存證可以交易,對於用戶來說可以收回很大一部分算力成本。現在主要的算力存證挖礦有XBIT,是最初的創新挖礦商。其他的像VC這些也可以。
投資有風險,樓主不要盲目哈

『伍』 VC中COM組件的幾種調用方式

一、最簡單最常用的一種,用#import導入類型庫,利用VC提供的智能指針包裝類
演示代碼:

#import "D:\Temp\vc\simpCOM\Debug\simpCOM.dll " no_namespace
CoInitialize(NULL);

IFooPtr spFoo = NULL;
spFoo.CreateInstance(__uuidof(Foo));
spFoo-> SayHello();
spFoo.Release();/*暈死了,本來智能指針就是為了讓用戶不用關心這個的,可是我發現如果不手工調用一下的話,程序退出後會發生內存訪問錯誤,我是在console中做試驗的,哪位大俠知道怎麼回事請一定指教*/
CoUninitialize();

『陸』 如何解決GUIminer"由於應用程序配置不正確"無法啟動挖礦

原因分析:
綜合互聯網上的資料,絕大部分是以下三種原因:
該問題的原因之一:guiminer程序不完整,請重新下載綠色純凈版。
該問題的原因之二:您的計算機的Windows Installer服務沒有開啟。
其解決方法是打開控制面板→管理→服務,將Windows Installer服務開啟,並設為自動,再重啟電腦。
該問題的原因之三:您的計算機上沒有安裝Visual Studio的運行庫。
該應用程序是Visual Studio 2005及其以上版本開發的,其依賴於相應的運行庫,而您的電腦上沒有安裝該運行庫。(對於VC6或VS2003開發的應用程序,如果缺少庫文件,是會提示缺少「**.dll」,但VS2005或VS2008的卻只提示「由於應用程序配置不正確……」。)
其解決方法不是重裝應用程序,更不是重裝系統,而是安裝相應的運行庫(Microsoft Visual C++ 20** Redistributable Package,即vcredist_x86.exe。
★區分您的程序是VS的哪個版本開發的確實有點困難,甚至有些軟體是多個版本開發的,那就多種vcredist_x86.exe都裝上,它們互相兼容,就能解決您計算機上大多數軟體的同類問題了。(2005和2008的都裝上後「添加/刪除程序」會顯示如圖5)。
★以下以「20**」代表「2005」或「2008」或「2009」或「2010」。
所需安裝包
僅需一個文件——微軟官網下載中心下載的vcredist_x86.exe
步驟
打開控制面板→管理工具→服務,如果Windows Installer服務沒有開啟,則設其為自動,再重啟電腦。如果沒有解決問題則繼續。
可以初步判斷您的程序是VS的哪個版本開發的。
(打開應用程序所在目錄,搜索是否有mfc或msvc開頭的文件,如果有,請查看其文件版本可知VC的版本。請看下圖,8表示VC8.0開發的,9表示VC9.0開發的)
VS2003的VC版本是VC.1,
VS2005的VC版本是vc8.0,
VS2008的VC版本是vC9.0。
在控制面板的「添加/刪除程序」查看本機是否安裝了Microsoft Visual C++ 20** Redistributable Package。
如果沒有上圖中的Microsoft Visual C++ 20** Redistributable,則繼續。
從微軟下載中心下載Microsoft Visual C++ 20** Redistributable Package。該文件有32位的(X86),也有64位的(X64)。下載地址如下。
雙擊運行剛才下載到的vcredist_x86.exe,其會自動安裝Microsoft Visual C++ 20** Redistributable Package
檢查「添加/刪除程序」里是否有了該項
如果有該項,則說明安裝成功。然後開啟你的應用程序,如果沒有報錯,則說明問題解決。
如果還未解決,則互聯網上還有很多資料可查。

『柒』 為什麼說手機挖礦是騙局

因為手機挖礦後面進來的都會被割韭菜。

注意事項:

1、近兩年,有關區塊鏈的各種「一夜暴富」神話不斷上演,「挖礦」加密貨幣,成為一種新的致富潮流,手機挖礦也越來越流行。

2、真正的挖礦都是會有專門的礦機的,畢竟現在每一台礦機也是不便宜的,手機自動挖礦都是很便宜就可以獲得,挖的也不是比特幣,基本上自己發的山寨幣,也不值錢啊,到時候還是被割韭菜。

『捌』 covc數字貨幣如何質押生息

Covec數字貨幣如何質押升息這個吧朔州貨幣的一個就是說收益或者說是縮水它是根據一個市場來決定的

『玖』 魔獸世界挖礦400了怎麼練

熔礦只在低級的時候才長點 後期的都要通過采礦來長

『拾』 vc中怎樣讀取文件

一、
CStdioFile
二、
FILE* f = fopen("file name", "mode");
char buff[size];
fread(buff, size, 1, f);
fclose(f);
三、
//用MFC讀文件
CFile file("yourfile.txt",CFile::modeRead);

char *pBuf;
int iLen=file.GetLength();
pBuf =new char[iLen 1];
file.Read(pBuf,iLen);
pBuf[iLen]=0;

file.Close();
MessageBox(pBuf);
四、
//用C SDK 讀文件

HANDLE hFile;
hFile=CreateFile("2.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
char ch[100];
DWORD dwReads;
ReadFile(hFile,ch,100,&dwReads,NULL);
CloseHandle(hFile);
ch[dwReads]=0;
MessageBox(ch);*
五、
用C讀文件
FILE *pFile=fopen("1.txt","rb");
char *pBuf;
fseek(pFile,0,SEEK_END);//移動文件指針到文件末尾
int len=ftell(pFile);//獲取當前文件指針在文件中的偏移量,Gets the current position of a file pointer.offset
pBuf=new char[len];
rewind(pFile);//將指針移動到文件頭,Repositions the file pointer to the beginning of a file
//也可以用fseek(pFile,0,SEEK_SET);
fread(pBuf,1,len,pFile);
pBuf[len]=0;
fclose(pFile);
MessageBox(pBuf);

熱點內容
貨幣Usdt做空3倍 發布:2025-08-07 01:39:46 瀏覽:765
礦機記賬 發布:2025-08-07 01:33:56 瀏覽:396
比特幣根本沒有經濟產出 發布:2025-08-07 01:10:47 瀏覽:351
比特幣要退出中國嗎 發布:2025-08-07 00:37:49 瀏覽:487
gxs區塊鏈是馬雲的 發布:2025-08-07 00:33:23 瀏覽:84
win7挖eth 發布:2025-08-07 00:28:24 瀏覽:67
區塊鏈是哪國人發明的 發布:2025-08-07 00:22:09 瀏覽:364
螞蟻礦機國外官網 發布:2025-08-07 00:20:30 瀏覽:911
什麼國家承認比特幣 發布:2025-08-07 00:16:30 瀏覽:1000
以太坊挖礦破解抽水小工具 發布:2025-08-07 00:14:44 瀏覽:239