现在A.exe 调用B.dll. 是使用动态链接方式的,但是发现调用B.dll导出的函数的时候,参数的地址会变化,从而导致错误。
比如:我在A里面分配一个数组arr[100].arr的地址是0x000a,作为参数传入B的接口,跟踪到B里面后,发现参数的地址变成了0x000b,请问是咋回事阿。此外,我读些ini文件的时候,读出来的字符串前面总是多4个byte的无用数据,郁闷阿。有兄弟知道咋回事不
比如:我在A里面分配一个数组arr[100].arr的地址是0x000a,作为参数传入B的接口,跟踪到B里面后,发现参数的地址变成了0x000b,请问是咋回事阿。此外,我读些ini文件的时候,读出来的字符串前面总是多4个byte的无用数据,郁闷阿。有兄弟知道咋回事不
解决方案 »
- 各位大侠帮帮忙,是关于MCI,多媒体编程的问题。
- 请问如何独占CPU运行我的程序
- ActiveX控件自动下载安装的问题
- 奇怪!!程序在DEBUG和RELEASE下都可以编译通过,但是
- GetTickCount函数的出现这样的怪问题???
- 我写了一个程序,向一个程序的内存地址里面写数据,但每次地址都在变,怎么办?
- 为什么还是告诉我“没有注册类别”?
- 使用fopen怎么象ifstream一样逐行读取文件?
- 高手请进!挑战你的VC水平---一个著名软件企业的面试题
- 请问CDC::SetViewportExt(x,y)怎么用啊?它应该是将x,y映射成屏幕上的逻辑点吧,可是我画不出来呀 ???
- 如何在界面生成c文件或头文件?
- 如何把一个窗体显示在另一个窗体里?(MFC程序)
dll的接口是怎样定义的?外部程序是怎样调用dll的接口的?
看看这个,在.def文件中写入需导出的函数,再重新编译
因为它读些ini文件的时候,一样会在有用信息前加4个byte来,很奇怪,有谁碰到过,急求
ps:函数的声明和调用都是采用的__stdcall方式
exe的preprocessor definition:WIN32,NDEBUG,_WINDOWS,_MBCS
dll的preprocessor definition:WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,DLL_EXPORTS,_WINDLL
::GetPrivateProfileString读出来的字符串前面都多了4个bytes,先要把这个文件解决。因为我调用dll的时候,也是前面4个byte是慕名奇妙的。3Q!
这样更好解决问题.
有时,出现的问题可能和描述的问题之间的差距是比较大的。
::GetPrivateProfileString(_T("EMail"),_T("YourEMail"),_T(""),szMail,100,strUserKeyInFile);