|
no - just looking them up!
|
|
|
|
|
well, Im part of the way there!
I have tried this:
HINSTANCE hDLL = NULL;
FARPROC DLLFunc;
hDLL = LoadLibrary("MyDLL.dll");
if(hDLL)
{
DLLFunc = GetProcAddress(hDLL,"MyFunction");
FreeLibrary(hDLL);
}
I get a handle to the dll, but GetProcAddress fails. I have tried this with a different dll, and this appeared to work, so may be there is something unusual with MyDLL.dll - is there a way of finding out what functions are in the dll?
The VB program declares a variable as well - "Dim WithEvents obj As CVeronixCtl" how would this be handled?
Thanks again for your time and patience!
Mike
|
|
|
|
|
The spelling of the function name in GetProcAddress must be exact.
You can also try calling GetLastError like this:
DWORD Error = 0;
DLLFunc = GetProcAddress(hDLL, "MyFunction" );
if ( ! DLLFunc )
Error = GetLastError();
This will tell you the reason that the call failed.
You can find out the exported functions inside the DLL, by using the program Dumpbin that comes with the SDK.
dumpbin /EXPORTS MyDll.dll
|
|
|
|
|
I am trying to figure out why ReadFile returns different values when I step thru the program and when I run it. Both in debug mode. I am using ReadFile to get data from COM port.
When stepping thru it returns expected ERROR_IO_PENDING, but when running it returns “The system cannot find the file specified”.
I am checking for ERROR_IO_PENDING and do GetLastError when it fails.
The GetLastError returns the above missing file message.
I can do WaitForSingleObject using timeout. I do not have my program finished so I cannot actually do any real data reading from the COM port.
My guess is that I have some error in my setup and the ERROR_IO_PENDING message is masking it.
Any constructive comments as always are appreciated.
Thank you for your time.
Vaclav
Update
I found one error in my setup - the receiving buffer size was not defined.
Now I am getting the “The system cannot find the file specified” all the time - consitently. I think I can fix it now.
Solution / lesson learned :
When using an API which has GetLastError option use it before you do any API return value processing. My ill-conceived program logic - checking the return value first - got me into trouble.
-- Modified Sunday, March 28, 2010 10:47 AM
|
|
|
|
|
Probably posting the relevant code would help.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
OK here is the code - just the base:
iResult = ReadFile(m_hFile,pData,dwBytes,pdwRead,&osRead);
if (!iResult) {
long lLastError = ::GetLastError();
if (lLastError == ERROR_IO_PENDING)
{
....
TRACE("ReadFile(m_hFile,&pData,1,pdwRead,NULL)) ERROR_IO_PENDING \n ");
}
else
{
....
TRACE("ReadFile(m_hFile,&pData,1,pdwRead,NULL)) Unknown errof - read failed \n ");
pSupport = new COpenHR_Support;
pSupport->GetLastError_("Failed \nReadFile(m_hFile,&pData,1,pdwRead,&osRead)",lLastError);
}
}
else
{
.....
}
|
|
|
|
|
Guys,
Iam working with sqlite using c++, while i am trying to creating tables iam getting exception CppSQLite exception. I was already added CppSQLite3.h as header file. What i written is:
CppSQLite3.h
const *char gszfile="d:\\temp.db";
CppSQLit3DB db;
db. execDML("create table emp(cc varchar(20), subject varchar(30)");
i need solution for this, plz give me with more explanation.
|
|
|
|
|
You did not open the database.
|
|
|
|
|
hOW CAN I OPEN THE DATABASH
|
|
|
|
|
For example, your code looks like this:
const *char gszfile="d:\\temp.db";
CppSQLit3DB db;
db. execDML("create table emp(cc varchar(20), subject varchar(30)"); You are missing this before you call execDML:
db.open(gszfile); When you execute the command without opening the database, you sure will get an exception.
|
|
|
|
|
Thnx to your reply, eventhough iam trying with ur solution, still same exception exist. The exception like:
c++ exception at memory location 0x0000012ee8e
|
|
|
|
|
What line is throwing the exception?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
David,
as finally i can able tog get the solution to create and insert data into sqlite tables. Now i want to display the data into listview/ treeview control, how can i get the records from existed table. Can u suggest me something.
Regards
KiranKumar
|
|
|
|
|
I have not met this type of trouble before. I am assuming that you are using the wrapper found here:
CppSQLite - C++ Wrapper for SQLite[^]
I liked that wrapper when I first read that article, but to be honest I never used it. My projects either used direct C function calls to the Sqlite library, or used a wrapper that is an enhancement of the wrapper found here:
An Easy to Use Wrapper for SQLite3 (Totally Free Embedded Database Engine!)[^]
To solve your problem, I will need to have a closer look at your code. Since you have the source code of everything, you surely can trace into the source code to pinpoint the problem. You might have discovered some problems in the wrapper, not in your code. Sqlite is always very friendly to me; surely it will be friendly to you.
Good luck!
|
|
|
|
|
bool OpenSQLite(CString sDatabaseFilePath)
{
int nRet = sqlite3_open16((char*)(LPCTSTR)sDatabaseFilePath, &m_pSQLiteDB);
if (nRet != SQLITE_OK)
{
return false;
}
return true;
}
void CloseSQLite()
{
if (m_pSQLiteDB)
{
sqlite3_close(m_pSQLiteDB);
m_pSQLiteDB = 0;
}
}
bool ExecuteQuery(CString sQuery)
{
if(!m_pSQLiteDB)
return false;
sqlite3_stmt* pVM = 0;
const TCHAR* szTail = 0;
int nRet = sqlite3_prepare16(m_pSQLiteDB,(char*)(LPCTSTR)sQuery,sQuery.GetLength()*sizeof(TCHAR), &pVM, (const void**)&szTail);
if(nRet != SQLITE_OK)
{
const char* szError= sqlite3_errmsg(m_pSQLiteDB);
return false;
}
nRet = sqlite3_step(pVM);
if(nRet ==SQLITE_DONE)
{
// u can use results
}
else if (nRet == SQLITE_ROW)
{
// row by row
}
else
{
sqlite3_finalize(pVM);
return false;
}
return true;
}
|
|
|
|
|
Sir,
My build is sccess but whan iam running the application i am getting error like:
application was unable to start correctlly, what is the problem, revert me back asap.
|
|
|
|
|
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
|
|
|
|
|
You should read book on C to get more familiar with the loops that are avail in C.
I prefer you to read "Let Us C - Yashwant Kanetkar".
Please dont expect full code from here
well this case i can help, but what about the other cases?
So it is better to get familiar with C loops and then make a logic from your side.
All the best.
Величие не Бога может быть недооценена.
|
|
|
|
|
You need an outer loop and a inner one.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Try this:
#include <iostream>
using namespace std;
void main()
{
const char *p[] = {"1", "2 2", "3 3 3", "4 4 4 4",
"5 5 5 5 5", "4 4 4 4", "3 3 3",
"2 2", "1"};
for (int i=0; i<sizeof(p)/sizeof(*p); ++i)
{
cout << p[i] << endl;
}
}
Steve
|
|
|
|
|
You've got my 5, for the best non-answer of the day.
I don't know why others gave you a "1" rating, I guess they didn't read what you were suggesting!
|
|
|
|
|
hmmm, this is a difficult one...
Can you see any pattern in it?
|
|
|
|
|
Rozis wrote: Can you see any pattern in it?
The laser pointer and cat design pattern?
You measure democracy by the freedom it gives its dissidents, not the freedom it gives its assimilated conformists.
|
|
|
|
|
It is very simple. The following is the generic code algorithm.
int range = <any value="">;
int outer,inner;
//The following loop is for displaying pattern from 1 to n ( any value)
for( outer loop... )
{
for( inner loop... )
}
//The following loop is for displaying pattern from n-1 to 1
range -= 1;
for( outer loop... )
{
for( inner loop.... )
}
Understand the basic code flow and implement your code.
|
|
|
|
|
#include <iostream>
using namespace std;
void main(){
const static int threshold(5);
for(int i(1), d(+1); i; i += d, d = (i == threshold)? -1 : d){
for(int j(0), end(i); j != end; ++j) {
cout << i << " ";
}
cout << endl;
}
}
Getting rid of the ending space are trivial and left as an exercise .
|
|
|
|