@passby
呵呵,這個(gè)問題我最后也沒有解決。只是加了相關(guān)的判斷。如果你有更好的辦法,不妨分享一下。
@kkk
好像不可以。要是防止復(fù)制、發(fā)送操作什么的,可以用一下鉤子吧。
re: 感謝所有幫助我的人 Sandy 2009-12-22 15:08
謝謝
re: UML畫圖工具 Sandy 2009-08-21 08:54
@missdeer
呵呵,這個(gè)我倒忘了,主要是別人給我的,沒有注意收費(fèi)。有時(shí)間用一下StarUML一下
re: “1”的個(gè)數(shù) Sandy 2009-08-04 11:42
@codespy
這個(gè)我還真的沒有想到.
你說的是這種么?
int numOnesInBinary3(int num)
{
num = num - ((num >> 1) & 0x55555555);
num = (num & 0x33333333) + ((num >> 2) & 0x33333333);
num = (num+ (num >> 4)) & 0x0F0F0F0F;
num = num + (num >> 8);
num = num + (num >> 16);
return num & 0x0000003F;
}
我是在
http://bvcat007.javaeye.com/blog/203577中看到的,原理是利用二分法,兩兩一組相加,之后四個(gè)四個(gè)一組相加,接著八個(gè)八個(gè),最后就得到各位之和了。
他還提供了一種是
int numOnesInBinary4(int num)
{
unsigned n;
n = (num >> 1) & 033333333333;
num = num - n;
n = (n >> 1) & 033333333333;
num = num - n;
num = (num + (num >> 3)) & 030707070707;
num = num% 63;
return num;
}
首先是將二進(jìn)制各位三個(gè)一組,求出每組中1的個(gè)數(shù),然后相鄰兩組歸并,得到六個(gè)一組的1的個(gè)數(shù),最后很巧妙的用除63取余得到了結(jié)果。因?yàn)?^6 = 64,也就是說 x_0 + x_1 * 64 + x_2 * 64 * 64 = x_0 + x_1 + x_2 (mod 63),這里的等號(hào)表示同余。
@tzzhwj
在指定的路徑上創(chuàng)建一個(gè)文件夾,可以利用CreateDirectory,具體使用可以查一下SDK。
比如我們?cè)诟夸浵聞?chuàng)建一個(gè)名為New的文件夾,就可以這樣寫:
CreateDirectory(_T("\\New"), NULL);
這是一篇轉(zhuǎn)載的文章,看過了,很長(zhǎng),但是觸動(dòng)了心里某個(gè)柔弱的地方。
上研以來,一直在公司里做事,從一開始的各種雜事,到后來慢慢接觸項(xiàng)目。從好奇到現(xiàn)在有些疲倦,發(fā)現(xiàn)人是一個(gè)愛偷懶的動(dòng)物。現(xiàn)在想著快點(diǎn)離開吧,所以才有了為實(shí)習(xí)爭(zhēng)取的勇氣,結(jié)果失敗了。心里也有一些憤憤然。
昨天看到一個(gè)女孩的回復(fù),心里還是蠻有感動(dòng)的。
人是需要繼續(xù)努力的,在一個(gè)環(huán)境里,不要抱怨,不要認(rèn)為自己有何特殊,有何卓爾不同。還是要踏踏實(shí)實(shí)的做一個(gè)我,無論給予了什么樣的機(jī)會(huì),我相信都會(huì)是一個(gè)奇跡。
re: 最近多了很多勇氣[未登錄] sandy 2009-06-15 18:59
幾番爭(zhēng)取還是失敗了!
但是,如果在遇到,我還會(huì)努力.
@Brandon
應(yīng)該是一樣的吧,可以借助信號(hào)量.
如果是非窗口的,就不用將窗口置前了,直接就退出了.
我是這樣理解的,不知道可行么?
@beautymind
hi, 你說的是不是將發(fā)送的特殊短信移到自己建的目錄下,這個(gè)我還真的沒有嘗試過.
不過理論上是不是可以這樣去想,按照短信存儲(chǔ)的相關(guān)信息,將其存儲(chǔ)到數(shù)據(jù)庫(kù)中,這樣,我們自己就可以查看相應(yīng)的短信信息,而不在系統(tǒng)的收件箱里面出現(xiàn).
如果還原回去的話,就把記錄的相關(guān)信息插入到系統(tǒng)的文件夾里.
這是我自己的理解.
@qingyuzhui
這個(gè)我建議你看一下SDK。里面有一些對(duì)返回值的說明。
這里我對(duì)SmsSendMessage說明一下它的返回值,
如果SmsSendMessage執(zhí)行成功的話,它會(huì)返回S_OK ,表示該方法成功執(zhí)行。
如果返回的值為E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, and E_FAIL,或者為其他,可以查看一下SMS Specific Errors 和 SMS General Errors。
如果你覺得不是很明白的話,可以給我發(fā)郵件:qiyanhd@163.com
@飛飄飄
在真機(jī)上運(yùn)行需要安裝同步軟件,如果你是xp系統(tǒng)的話,安裝Active Sync同步軟件, 在調(diào)試的時(shí)候,選擇相應(yīng)平臺(tái)的device; 如果是vista系統(tǒng)的話,安裝Microsoft Windows Mobile 設(shè)備中心6.1,即drvupdate-x86.exe.
如果只是簡(jiǎn)單的試驗(yàn)一下這個(gè)程序的話,安裝同步軟件后,只需把那個(gè)exe文件拷貝到手機(jī)上,點(diǎn)擊該文件即可.
re: C++ 代碼技巧 (續(xù) 02) Sandy 2009-04-16 10:01
項(xiàng)目龐大了,這個(gè)方法是不是就不可行了?
@飛飄飄
你好,我今天還專門試了一下wm6中HelloSMS的那個(gè)例子,沒有異常啊!
WM5和WM6中兩個(gè)例子的代碼基本上是相同的。
在這種情況下,是不是指將PS_MESSAGE_CLASS1替換成PS_MESSAGE_CLASSUNSPECIFIED。
我分別在模擬器和真機(jī)上試驗(yàn)過,似乎也沒有什么異常,所以還請(qǐng)賜教。
我也在vs2005下嘗試了,編譯的時(shí)候會(huì)有以下錯(cuò)誤
error C2248: 'A::base' : cannot access private typedef declared in class 'A'
A中定義的時(shí)候,需要把
typedef A base; 定義為public.
DWORD nNumberOfBytesToWrite, // 數(shù)據(jù)包含的字符串的個(gè)數(shù)
這個(gè)是bytes數(shù), Number of bytes to write to the file
以前沒有怎么注意,如果存儲(chǔ)TCHAR類型的時(shí)候, 就需要注意一下了,需要長(zhǎng)度*2的.
@戰(zhàn)天意
只要包含
#include <windows.h>
就可以了.
re: 對(duì)話框的屬性問題 Sandy 2009-03-19 09:20
@陳梓瀚(vczh)
這樣啊,非常感謝.
我想明白了。
@Herb
現(xiàn)在也只有SmartPhone有這個(gè)問題.
使用微軟移動(dòng)數(shù)字簽名有個(gè)特點(diǎn),已經(jīng)簽名的事件永不過期;
所以應(yīng)該不會(huì)涉及過期的問題吧
@鳳凰羽翼
這個(gè)我也是看例子這么寫的。你這么一說,我還專門查了一下。
在
http://www.cic.tsinghua.edu.cn/jdx/book4/dlz.htm
中提到加鎖與解鎖,它是這樣說的 :
“不管是可移動(dòng)對(duì)象還是可刪除對(duì)象,在它分配后其內(nèi)存句柄是不變的,它是內(nèi)存對(duì)象的恒定引用。但是,應(yīng)用程序無法通過內(nèi)存句柄直接存取內(nèi)存對(duì)象,應(yīng)用程序要存取內(nèi)存對(duì)象還必須獲得它的近地址,這通過調(diào)用LocalLock函數(shù)實(shí)現(xiàn)。LocalLock函數(shù)將局部?jī)?nèi)存對(duì)象暫時(shí)固定在局部堆的某一位置,并返回該地址的近地址值,此地址可供應(yīng)用程序存取內(nèi)存對(duì)象使用,它在應(yīng)用程序調(diào)用 LocalUnlock函數(shù)解鎖此內(nèi)存對(duì)象之前有效。”
它的例子如果這樣用的話,那么在
FormatMessage中調(diào)用系統(tǒng)LocalAlloc分配,需要對(duì)內(nèi)存對(duì)象進(jìn)行加鎖與解鎖。
呵呵,這只是我的理解而已。
另:你也畢業(yè)生?
對(duì)啊,不過我明年才會(huì)畢業(yè)呢!
弄錯(cuò)了一個(gè)參數(shù)
PS_MESSAGE_CLASSUNSPECIFIED
這個(gè)參數(shù)設(shè)置以后,短信發(fā)出去了,但是卻引起了tmail.exe的異常
不知道什么原因造成的
Thank you!
通過看你的介紹把我的一個(gè)問題解決了!
不勝感激啊!
這里簡(jiǎn)單介紹一下以下兩種情況的異同:
(1)B private 繼承A
(2)A是B的一個(gè)私有成員的異同
你好,對(duì)于第二中情況,我不是很懂,A是B的一個(gè)私有成員的異同
class A
{
};
class B: private A
{
};
這是第一種情況,
那么第二種是什么情形呢?
re: 疑問: 如何釋放內(nèi)存?? Sandy 2009-02-24 13:24
查了一下SetProcessWorkingSetSize
在
http://www.vbgood.com/viewthread.php?tid=46136&extra=&page=3
里面有關(guān)于這個(gè)函數(shù)的激烈討論,大多數(shù)人也都認(rèn)同
“因?yàn)樗皇菚簳r(shí)的將應(yīng)用程序占用的內(nèi)存移至虛擬內(nèi)存,一旦,應(yīng)用程序被激活或者有操作請(qǐng)求時(shí),這些內(nèi)存又會(huì)被重新占用.如果你強(qiáng)制使用該方法來設(shè)置程序占用的內(nèi)存,那么可能在一定程度上反而會(huì)降低系統(tǒng)性能,因?yàn)橄到y(tǒng)需要頻繁的進(jìn)行內(nèi)存和硬盤間的頁(yè)面交換.”
還有兩篇文章,是
windows平臺(tái)一個(gè)程序究竟占用多少內(nèi)存?
http://blog.csdn.net/jaminwm/archive/2006/11/18/1394993.aspx
關(guān)于 SetProcessWorkingSetSize 和內(nèi)存釋放
http://hi.baidu.com/taobaoshoping/blog/item/a1f6baf52d523a21bd3109f5.html
看來還需要慎用該函數(shù)。
此外,我連用的機(jī)會(huì)都沒有!我是想在windows mobile上來實(shí)現(xiàn)釋放內(nèi)存來實(shí)現(xiàn)優(yōu)化系統(tǒng)的功能。然后他卻沒有這個(gè)函數(shù)。
不過,謝謝大家指點(diǎn)。
有建議繼續(xù)提!
re: 疑問: 如何釋放內(nèi)存?? Sandy 2009-02-24 09:29
@微妙的平衡
謝謝,我嘗試一下
re: 疑問: 如何釋放內(nèi)存?? Sandy 2009-02-24 09:29
@gussing
《windows internal》是不是Windows核心編程呢?
還有申請(qǐng)一塊很大的內(nèi)存,是指虛擬內(nèi)存,還是物理內(nèi)存呢?
現(xiàn)在有些更疑惑了.
@megax
謝謝!
讓我明白了一個(gè)小知識(shí)。
程序的讀和寫都是自己控制的,所以我在寫文件的時(shí)候,沒有必要進(jìn)行字符串。讀文件的時(shí)候也按照相應(yīng)的字符讀取即可。所以我的代碼使用最初的代碼就可以了。
不過謝謝了。
@__ay
謝謝!
我嘗試了CreateFile的第五個(gè)參數(shù),改變了一下,好像不可以.用GetLastError,錯(cuò)誤值是32,另一個(gè)程序正在使用此文件,進(jìn)程無法訪問。似乎這種錯(cuò)誤下,不易進(jìn)行操作。我是要在文件不存在的情況下進(jìn)行創(chuàng)建,如果存在也是完全覆蓋。所以使用了CREATE_ALWAYS。
OpenFile在mobile中好似不支持,在mobile中他利用CreateFile來打開文件的,參數(shù)可以是OPEN_EXISTING或OPEN_ALWAYS。
呵呵,謝謝各位指點(diǎn).
debug vector allocator與release vector allocator不是一個(gè)東西。
re: 再談LoadString Sandy 2008-12-18 20:05
仔細(xì)想了想,如果用上面這個(gè)方法,勢(shì)必要用到動(dòng)態(tài)分配字符串?dāng)?shù)組,我不是很熟悉字符串?dāng)?shù)組如何實(shí)現(xiàn)動(dòng)態(tài)增長(zhǎng).(如果有大俠知道的話,請(qǐng)指點(diǎn)一二).如果是采用New和Delete的話,則需要不斷的New和Delete,可能這個(gè)顯示中的概率比較小,string table里面字符串的長(zhǎng)度也是有限制的.但這個(gè)方法確保了不會(huì)出現(xiàn)異常.
而我昨天所用的LoadString(hInstance, IDS_STR, NULL, 0),則可能會(huì)不穩(wěn)定.需要人為的去進(jìn)行設(shè)置一下.
所以個(gè)人認(rèn)為,如果知道字符串的大概長(zhǎng)度的話,這兩種方法都不可取,如果你資源的文件可能涉及多語(yǔ)言和國(guó)際化的話,就需要考慮一下這兩種方法.
采取哪種,看你了
re: LoadString的一些小用法 Sandy 2008-12-18 08:28
@萬(wàn)連文
這個(gè)我還真的沒有想到.謝謝提醒.我自己也封裝了一個(gè),可是用起來比較麻煩,我去看看CString的LoadString怎么實(shí)現(xiàn)的.
@jmchxy
說的很對(duì)。在windows系統(tǒng)的窗口處理本身就是回調(diào)函數(shù),雖然天天在用,對(duì)其機(jī)制不是很了解。所以jmchxy的補(bǔ)充讓我很受益。
謝謝!
re: I wish sandy 2007-05-06 18:56
呵呵~(表示開心的習(xí)慣)
千萬(wàn)不要沖動(dòng)~裝系統(tǒng)是最讓我郁悶的事~我曾經(jīng)深受其害!!
在D盤建立crt_getc.txt,輸入dsfdsgfdhdshgjtreter
#include <stdio.h>
#include<process.h>
int main()
{
char buffer[81];
int i, ch;
FILE* fp;
// Read a single line from the file "crt_getc.txt".
fopen_s(&fp, "D:\crt_getc.txt", "r");
if (!fp)
{
printf("Failed to open file crt_getc.txt.\n");
exit(1);
}
for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
&& (ch != '\n'); i++)
{
buffer[i] = (char) ch;
}
// Terminate string with a null character
buffer[i] = '\0';
printf( "Input was: %s\n", buffer);
fclose(fp);
}
運(yùn)行結(jié)果:
Input was: dsfdsgfdhdshgjtreter
請(qǐng)按任意鍵繼續(xù). . .
關(guān)于getc()詳見隨筆“C語(yǔ)言中關(guān)于文件的一些操作”
getch()和getche()都是在輸入一個(gè)字符的之后就立刻執(zhí)行下面語(yǔ)句而不需要等到輸入一個(gè)回車才結(jié)束。
#include<stdio.h>
#include<conio.h>
int main()
{
char ch;
printf("請(qǐng)輸入一個(gè)字符:");
ch=getch();
printf("ch=%c\n",ch);
}
測(cè)試結(jié)果:
請(qǐng)輸入一個(gè)字符:ch=d
請(qǐng)按任意鍵繼續(xù). . .
//使用getch();我輸入的是d,但在屏幕上根本就看不到我輸入的是什么,程序是直接把d這個(gè)字符賦給ch了,然后順序執(zhí)行printf("ch=%c\n",ch);語(yǔ)句。
我把程序改一下,把getch()改為getche()
#include<stdio.h>
#include<conio.h>
int main()
{
char ch;
printf("請(qǐng)輸入一個(gè)字符:");
ch=getche();
printf("\nch=%c\n",ch);
}
請(qǐng)輸入一個(gè)字符:g
ch=g
請(qǐng)按任意鍵繼續(xù). . .
這次屏幕上有回顯我輸入的g
re: 請(qǐng) 教 sandy 2007-04-27 11:03
for(j=0;j<5;j++)
for(i=j;i<5-j;i++)
if(a[i]>a[i+1])
這里出問題了
當(dāng)j=0,i=4時(shí),a[i+1]是哪個(gè)元素啊~這時(shí)不是越界了。
所以我感覺應(yīng)該是這樣寫:
template <typename T>
void sort(T v[],int size)
{
for(int i = 0;i < size;++i)
for(int j = i;j < size - 1-i;++j)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);//標(biāo)準(zhǔn)庫(kù)里好像有這個(gè)函數(shù)
}
用模板寫就省很多功夫了
哈哈~~
當(dāng)時(shí)我還以為是這一項(xiàng)里面有分的小項(xiàng)呢~~
呵呵,樓主在注釋里面寫得很清楚啊
"*Description: It uses recursive to enumerate all cases. ”
int num TimesConsulted; 這個(gè)是吧~
其他的沒看出來.
謝謝你發(fā)表的這些文章。我求了很久了
re: 空struct為何有大小?(求解釋) sandy 2007-04-15 12:31
int func(char s[5]);
{
cout<
//數(shù)的參數(shù)在傳遞的時(shí)候系統(tǒng)處理為一個(gè)指針,所
//以sizeof(s)實(shí)際上為求指針的大小。
return 1;
}
sizeof(func(“1234”))=4//因?yàn)閒unc的返回類型為int,所以相當(dāng)于
//求sizeof(int).